(First?) Meteor-backed app for Apple Vision Pro

Hi Meteorites, just wanted to let you know that Apple just approved our app for Vision Pro, which is probably one of the first Meteor-backed apps on that platform.

You can find the 30s app store trailer here: https://www.youtube.com/watch?v=ZEM8t3UiWqQ and the app itself as “Marbleverse” in the app store.

I hope that I will now find some time to push my visionOS fork of a DDP package to Github, as already discussed in another thread.

9 Likes

This is really cool! When I saw the first Vision Pro reviews, I wondered how to code stuff into it.

I must have missed this other thread, but was it challenging to create stuff with Meteor to Vision Pro? I would like to learn more about this process :clap:

1 Like

Hi @denyhs, Thanks for the kind words.

The biggest challenge (regarding Meteor) was that there is no “official” native DDP support for iOS / visionOS. I found an open-source library, but it was not stable and had quite some bugs. It also did not really work in the same way as Meteor’s web implementation does. So I made a fork which tries to better mimic what Meteor does (and I assume it’s still a bit buggy :crazy_face:).

Although DDP is a pretty simple protocol, the devil is in the details, especially when it gets to things like reconnecting if the connection breaks up. The existing library did not really care for this (or to be more precise: it kinda did, but only for an outdated WebSockets implementation). Another example was that the library did not follow the resub/unsub pattern of the web implementation, resulting in all documents being sent again instead of diffing them. Implementing something like Meteor’s “merge box” is not trivial, too.

Luckily, I had some prior experience, since I had pretty much the same situation when I integrated DDP into our Unity-based mobile apps for iOS and Android, which also use the same Meteor backend. I had found a C# implementation, but it had similar issues, so I patched it a lot back then.

I would love to see native ports of DDP implemented by the Meteor team, ideally in Swift, Kotlin, and C#. That would be just amazing. When I started with Meteor back in 2015, there were inofficial implementations for iOS (Objective-C) and Android (Java) by Martijn from MDG, but they are pretty outdated.

You can find the other thread here: Replacement for DDP?

Besides Meteor, the biggest challenge on visionOS right now is that the platform is pretty new. It has bugs and limitations, the documentation and tutorials are scarce, and Apple’s support in the forums quite often boils down to: “If you need this or that feature, please open a ticket.” :slight_smile:

And if you’re new to Swift and Swift UI (like me), that’s a pretty steep learning curve as well. Both of these technologies are IMHO quite “over-engineered”, and still differ a lot from OS version to OS version (even on iOS). Thus, it’s quite tough find the right docs / tutorials / samples online.

Happy to jump on a Zoom call anytime to tell you more, if you’re interested.

EDIT: Besides, I think Meteor is the perfect backend for a highly reactive app like ours, where things happen in real-time, in a multi-user social environment. We’re also using maps heavily in the visionOS app, where it is crucial that you only get the diffs when panning. As it is a social app, there’s tons of content to be found all over the world.

3 Likes

Congratulations, that looks amazing!!

1 Like

Woohoo!! Very nice! MeteorJS is still quite relevant!!

Would you be up to doing a presentation regarding your journey building and Apple Vision Pro app on MeteorJS?

1 Like

Sure, why not. In what context?

FYI: You can find our DDP fork at GitHub - marblear/MeteorDDP at visionos

1 Like

Not sure yet. I think it is a pretty cool proof project that demonstrates that MeteorJS is still relevant as a development platform for working on cutting-edge tech. I think it could be an inspiration to others. I remember the excitement that our meetups used to generate when someone would show up with something cool that they worked on with Meteor.

Perhaps we could do something on the podcast, or on a separate video? I’m hoping we can do a mini conference in the fall, and this might work well there.

Thoughts?

I would use the meterorrn library then use something like this to build the VisionOS app: callstack/react-native-visionos: A framework for building native visionOS applications using React (github.com)

I have an iOS app published the App Store running with Meteor.

1 Like

I have tried this. It’s pretty cool, but it was still pretty early in development when I started my own visionOS app. I also learned the hard way that every additional layer in the stack can cause headaches, especially if you want to use the latest tech.

1 Like