insights & news > Insights

Bring Your Existing iOS App to Apple Vision Pro

Craig Martin

iOS Developer

July 30, 2024

Download

Download Now

Download

Download Now

Share

In early 2023, we were approached by Apple to begin working with their Apple Developer Labs team in Sydney to get our hands on the new OS and familiarize ourselves with the new Apple Vision Pro headset. As with any new platform or OS, our development team was extremely excited about the opportunity to engage with this new device. We quickly began using our knowledge to design and develop a dedicated Vision Pro application for an existing client of ours. This application would offer their viewers an entirely new way to experience video content in immersive environments.

In this blog, we share with you the learnings and recommendations that we have gained through our work so that you can also successfully bring your existing iOS to Apple Vision Pro. 

1. Understanding an Apple Vision Pro’s App - What does it look like?

Before development, we want to take the time to really understand what the Apple Vision Pro can do. An Apple Vision Pro app fundamentally differs from our regular apps in three main elements: Window, Volume, and Immersive space.

Window:

Windows in Vision Pro are akin to traditional app windows but adapted for a spatial computing environment. These windows can be positioned freely within the user's space, allowing for a flexible and customizable user experience. Users can interact with these windows using familiar gestures and controls, and the content within can be 2D or 3D. This feature allows for traditional app interfaces to be extended into a spatial context without a steep learning curve for developers or users​.

Volume:

Volumes are designed to showcase 3D content within the Vision Pro environment. Unlike windows, which are generally 2D, volumes can be viewed from any angle, providing a more immersive experience. They allow developers to create rich, interactive 3D interfaces and content that can exist alongside other app elements in the shared space or be part of a dedicated full space. 

Immersive space:

Immersive space offers a dedicated environment where an app can take over the entire visual field, creating a fully immersive experience. This type of scene is ideal for applications that require deep engagement, such as games, simulations, or any content that benefits from a fully enveloping environment. In an Immersive space, developers can create unbounded 3D content that users can explore from multiple perspectives, providing a highly engaging and interactive experience. 

These elements are integral to designing for visionOS, enabling developers to create a range of experiences from traditional app interfaces to fully immersive 3D environments. Comprehensive documentation and tools are available on the Apple Developer site to help you get started with these features, including SwiftUI and RealityKit integrations, which are essential for building Vision Pro apps.

2. Getting started - Setting the right expectations:

By default, Apple does provide a way to bring your iPad app to Vision Pro with minimal work, but the results very evidently feel less than native. These apps might not take full advantage of Vision Pro's interactive and immersive features, leading to a subpar user experience. Hence, we advise against taking the easy route and recommend investing time and effort in building your app to fit the Vision Pro environment.

Currently, there are two main ways to program iOS apps, using UIKit or SwiftUI. UIKit has been around since 2007, and it's a reliable way to develop iOS apps with plenty of resources and legacy code available. However, it's not designed for the immersive experiences Vision Pro offers. On the other hand, SwiftUI is the modern, hip way to develop apps. It's designed with the latest technology in mind, making it perfect for creating the kind of 3D, immersive elements that Vision Pro excels at.

Most apps on the App Store today are built with UIKit. At first glance, it might seem easier to adapt your existing app to Vision Pro rather than starting from scratch. However, this approach often leads to constant struggles with limitations. You'll spend so much time trying to make an old app fit into a new environment that it might be just as time-consuming as building a new app from the ground up.

Eventually, you will find yourself at a decision point: Do you adapt your old app to fit Vision Pro, or do you create a new one from scratch?

We strongly recommend starting fresh with SwiftUI for Vision Pro app development, and potentially bringing some existing components across. SwiftUI is optimized for the immersive and interactive features of Vision Pro, ensuring a seamless user experience. It provides future-proofing and readiness for upcoming updates and technologies. Despite initial concerns, SwiftUI's intuitive syntax and real-time previews can accelerate development. Ultimately, starting from scratch with SwiftUI will save time and deliver a superior user experience, fully leveraging VisionOS's capabilities.

3. Development phase  - What we recommend:

Now that you have made the decision on the development program and started building, we have gathered the following important recommendations drawn from our experience, which will prove to be useful in guiding your development.

Test on the actual device: It is important that you get hold of the actual headset and test your work on it, which is the best way one can fully replicate the immersive experience. Simulators are useful for initial design, but they often fail to accurately represent the sizes and angles of elements, leading to discrepancies. Regular hands-on testing with the headset allows you to fine-tune details and ensure your design looks and feels right. This approach helps you create a polished and user-friendly app optimized for Vision Pro's unique capabilities.

Use Apple’s native player: Currently, Apple’s native player is the only option available for video playback on Vision Pro. Other market players can not be used as they are not supported by the headset. This limitation ensures that DRM (Digital Rights Management) integration necessary for content protection is maintained. This might pose challenges, especially if your customers are accustomed to different video players. As Vision Pro adoption grows, more player options may become available, but for now, relying on Apple's native player is unavoidable for content security.

Beware of the limitations: As you continue to work with VisionPro, you are likely to uncover additional nuances and limitations that will further refine your development process. Below are some learnings from our real experience.

  • Identify the maximum number of items - In one project, we initially planned to include 11 items in the side menu bar. However, during development, we discovered that any items beyond the eighth would not display. Such restriction was not immediately apparent, so it is important to understand the interface's constraints. 

  • Adapt your libraries - Developers often use many dependencies when building their applications. Most of these libraries were built with iOS in mind and do not work with the visionOS SDK. Removing or replacing these libraries involved a lot of work to just get the application to build for the Vision Pro.

  • Pay attention to screen-resizing - Apps built for iPhone and iPad were not meant to have their screen resized after the view loads. Hero images and collection views did not scale correctly when the view was adjusted in size. This required a rebuild of the UI on the Homepage, Series, and Movies pages.

Balance quality with efficiency: With immersive experiences, it is tempting to use the best quality images available to make it feel real. However, this can cause the headset to overheat and drain the battery quickly. To ensure optimal performance, high-quality assets should be reduced in size and complexity. 

For example, some Disney scenes use simple backgrounds with only one or two high-quality elements, to create a visually appealing yet efficient environment. Given that the headset's battery lasts only a couple of hours, it's crucial to avoid scenes that consume excessive power. By optimizing your assets, you can maintain a great user experience without compromising the device's performance.

At Accedo, we help customers bring their app on Vision Pro using SwiftUI - which results in low cost and less effort during the development phase, lowering the entry barrier. We work closely with you to build the application and continuously improve and support post-launch. Curious to learn more about our work and what we offer? Check it out here.

Download NowDownload now

Share this article

Want to take your video business to the next level?

Let's collaborate to define what is next for your OTT streaming service.

Contact us
x