Hacker News new | ask | show | jobs
by btown 820 days ago
> The biggest innovation with Vision Pro is visionOS. visionOS provides native app frameworks, so developers can build apps for it. That sounds ridiculously obvious, and yet its something Meta have failed to offer for years. Every app on Quest has to reinvent how buttons work, how a scroll view works, how far away from the user the content should be etc.. and every app works differently. On visionOS, all of this is handled by Apple, and every app looks and feels the same.

Meta does have standardized utilities for translating movement to touch/drag/etc. interactions on arbitrary virtual surfaces:

https://developers.facebook.com/blog/post/2022/11/22/buildin...

https://developer.oculus.com/documentation/unity/unity-isdk-...

But it doesn't seem (AFAIK) to answer the other side of this, which is the UI design system so apps have a consistent look and feel. Which is perhaps more common coming from a game development perspective, but ever since the Mac OS shareware days, Apple's understood that it's empowering to a certain kind of developer if you make it easy/the default path for them to build experiences that match a standardized look and feel. I'm honestly surprised that Meta didn't at least make an optional SDK for this.

4 comments

I think this is inevitable when you look at the original team at oculus, there were a lot of gaming folks (John Carmack was their CTO!) and I have no doubt that lives on in the culture today, for better or worse.

I doubt a UI toolkit or standard OS primitives were even on their radar.

From what I've heard, they've just recently elevated some really talented leaders who understand the interplay between the gaming world and line-of-business-app needs, so I'm hopeful they're moving in the right direction!

But, historically, it was a misstep not to build these kinds of developer tools and design systems the moment https://forwork.meta.com/quest/business-subscription/ became a glimmer in their eye.

I agree that Meta has tried but their solution is really completely different than a more traditional OS UI. Meta provides low level convenience functions SDK for the various native app development frameworks (mostly Unity and Unreal) to access the hardware and facilitate common movements, but the actual UI implementation is up to the app author resulting in a helter skelter hodge podge of varying UI from app to app. Even in the first link you provided above, after introducing many alternate concepts then it shows screenshots of wildly varying interfaces across multiple apps.
With a total of 10 buttons on the controller it's a (usually) minor annoyance that one app chooses to use one button to choose an action and another chooses a different button. Sometimes it can be really frustrating to try a bunch of buttons and see what works. I've put quite a few people through the AR demo that shipped with the Quest 3 and noticed that VR-naive people vary a lot in how quickly they figure out the idea that you can use a controller to shoot a gun.
100% agree. Sounds minor but one of the biggest usability issues for new user since the launch of the standalone quest is the confusion of users on whether to use trigger or X / A button as primary action.

And I'd say it's more than a minor annoyance, it's wild that the issue has existed for nearly a decade and their UX team thinks it's ok.

Because apps on Quest are universally games, and those pretty much never use standard controls. They don't even all use the same engine, so Meta would have to provide a UE SDK, a Unity SDK, etc.

I never felt this was remotely an issue with the Quest, and more than it is with desktop games.

It's annoying as hell for applications like Immersed and for media players. If every app had a different way to position windows and the UI was good in 50% of them it would be one thing but every app I've seen with floating windows is terribly awkward, although anybody can think up a number of alternatives that ought to work better.
> Meta does have standardized utilities for translating movement to touch/drag/etc. interactions

The page you linked to is full of links to Unity APIs / SDKs. So meta doesn't have them, Unity does.