Journal

visionOS App and Mobile Companion (Design Both Right)

The spatial side is new craft; the companion is familiar iOS work where VP0 helps most.

visionOS App and Mobile Companion (Design Both Right): a glossy App Store icon on a blue, pink and orange gradient with bubbles

TL;DR

visionOS replaces the flat screen with windows, volumes, and immersive spaces navigated by eyes and hands. Design the spatial experience to visionOS conventions (comfortable size and distance, large targets, meaningful depth), and build the iPhone companion from a free VP0 design as a normal iOS app, kept in sync through a shared backend.

Building for visionOS (Apple Vision Pro) is a spatial-computing problem: windows, volumes, and immersive spaces instead of a flat screen, with eyes-and-hands input instead of touch. Many visionOS apps also have an iPhone companion for setup, capture, or quick actions. The short answer is, design the spatial experience to visionOS conventions (depth, glanceable windows, comfortable input) and build the iPhone companion from a free VP0 design as a normal iOS app, keeping the two in sync. The spatial side is new craft; the companion is familiar iOS work where VP0 helps most.

What is different about visionOS

visionOS replaces the flat canvas with space: your app can be a floating window, a 3D volume, or a fully immersive space, and users navigate by looking and pinching rather than touching. Apple’s visionOS design guidance stresses comfort (content at a natural distance and size), depth used meaningfully, and glanceable layouts, because eye-and-hand input rewards large, well-spaced targets. The companion iPhone app, by contrast, is ordinary iOS: it handles account setup, content capture, or quick controls that are awkward in the headset. Keeping engagement across both supports retention (around 25% day one).

How to build the experience and its companion

VP0 is a free iOS design library for AI builders, and it is the natural fit for the companion app. Build the iPhone companion from VP0 designs in SwiftUI or React Native, the screens for sign-in, setup, library, and quick controls, as a normal iOS app. For the visionOS side, design to spatial conventions in SwiftUI for visionOS: comfortable window sizes, large focusable targets for eye-and-hand input, and depth used to organize, not decorate. Keep the two in sync through a shared backend so an action on the phone reflects in the headset. Do not try to cram a flat phone layout into space, or a spatial layout onto the phone. For another platform-companion pattern, see Apple Watch app UI kit Figma 2026.

visionOS plus companion building blocks

Here is the split.

PartWhat to get right
Spatial windowsComfortable size and distance
InputLarge targets for eye-and-hand
DepthOrganizes, not decorates
iPhone companionSetup, capture, quick controls
SyncShared backend across both

A worked example

Say you build a visionOS media app. In the headset, content lives in comfortable floating windows with large, well-spaced controls suited to eye-and-hand input, and depth separates the library from the now-playing view. On the phone, a companion app (built from VP0 designs) handles sign-in, browsing, and casting a title to the headset, plain iOS screens. A shared backend keeps both in sync. You design each surface to its platform rather than forcing one layout onto the other. For the broader build, see how to build an iOS app with AI; for a lightweight cross-platform path, Tauri mobile rust iOS UI kit.

Common mistakes

The most common mistake is treating visionOS like a big iPhone, cramming a flat layout into space with tiny targets. The second is overusing depth and immersion as decoration, causing discomfort. The third is ignoring eye-and-hand ergonomics (targets too small or too close). The fourth is building the companion app as an afterthought instead of a clean iOS app. The fifth is no sync, so the phone and headset feel like separate products.

Key takeaways

  • visionOS is spatial computing: windows, volumes, and immersive spaces with eyes-and-hands input, not touch.
  • Design to spatial conventions (comfortable size and distance, large targets, meaningful depth).
  • The iPhone companion is normal iOS work, build it from a free VP0 design.
  • Keep the headset and companion in sync through a shared backend, and design each to its own platform.

Frequently asked questions

How do I design a visionOS app and its mobile companion? Design the spatial experience to visionOS conventions (comfortable floating windows, large targets for eye-and-hand input, meaningful depth) in SwiftUI for visionOS, and build the iPhone companion from a free VP0 design as a normal iOS app, kept in sync via a shared backend.

What makes visionOS design different? It is spatial: content can be windows, volumes, or immersive spaces, and input is eyes and hands, not touch. That rewards large, comfortably spaced targets and depth used to organize, not decorate.

Where does VP0 help with a visionOS project? With the iPhone companion app, which is ordinary iOS work (setup, browsing, quick controls). Build those screens from VP0 designs, and design the spatial side separately to visionOS conventions.

Can I reuse my phone layout in the headset? No. A flat phone layout in space has tiny, uncomfortable targets. Design the spatial experience for visionOS and keep the phone companion as its own iOS app, synced through a shared backend.

Frequently asked questions

How do I design a visionOS app and its mobile companion?

Design the spatial experience to visionOS conventions (comfortable floating windows, large targets for eye-and-hand input, meaningful depth) in SwiftUI for visionOS, and build the iPhone companion from a free VP0 design as a normal iOS app, kept in sync via a shared backend.

What makes visionOS design different?

It is spatial: content can be windows, volumes, or immersive spaces, and input is eyes and hands, not touch. That rewards large, comfortably spaced targets and depth used to organize, not decorate.

Where does VP0 help with a visionOS project?

With the iPhone companion app, which is ordinary iOS work (setup, browsing, quick controls). Build those screens from VP0 designs, and design the spatial side separately to visionOS conventions.

Can I reuse my phone layout in the headset?

No. A flat phone layout in space has tiny, uncomfortable targets. Design the spatial experience for visionOS and keep the phone companion as its own iOS app, synced through a shared backend.

Part of the AI App Builders & Vibe Coding Tools hub. Browse all VP0 topics →

Keep reading

iPadOS Split View App Template in SwiftUI (Free): a glass iPhone app-grid icon on a mint and teal gradient
Guides 4 min read

iPadOS Split View App Template in SwiftUI (Free)

An iPad app shouldn't be a stretched iPhone layout. Use SwiftUI NavigationSplitView for a sidebar-list-detail layout, with each column built from a free VP0 screen.

Lawrence Arya · May 30, 2026
How to Build an iOS App With AI: A 2026 Guide: a phone toggle icon surrounded by location, calendar, settings, wallet and chart app icons on a coral gradient
Guides 5 min read

How to Build an iOS App With AI: A 2026 Guide

Start from a real iOS design, drive an AI builder like Claude Code, and ship to the App Store in days. The full workflow, tool by tool.

Lawrence Arya · May 28, 2026
Framer for iOS Apps: Where It Fits and Where It Stops: a glass photo icon surrounded by chat, music, heart, camera and shopping app icons on a pastel gradient
Guides 4 min read

Framer for iOS Apps: Where It Fits and Where It Stops

Framer is brilliant for design and prototypes, but it is web-first. See where Framer fits in an iOS workflow, and how to get from a Framer concept to a real app.

Lawrence Arya · May 31, 2026
Kotlin Multiplatform on iOS: Share Logic, Keep Native UI: a glass iPhone app-grid icon on a mint and teal gradient
Guides 4 min read

Kotlin Multiplatform on iOS: Share Logic, Keep Native UI

KMP shares business logic, not UI. Build truly native SwiftUI navigation from a free VP0 design over your shared Kotlin code, so iOS feels like iOS.

Lawrence Arya · May 31, 2026
React Native WebView Wrapper: Do It Without Getting Rejected: a glass photo icon surrounded by chat, music, heart, camera and shopping app icons on a pastel gradient
Guides 4 min read

React Native WebView Wrapper: Do It Without Getting Rejected

Wrapping a web app in React Native is tempting but risky. Build a WebView shell from a free VP0 design with native chrome and real native value.

Lawrence Arya · May 31, 2026
Capacitor Custom Native Header UI on iOS (Free Guide): the App Store logo as a glossy glass icon on a purple and blue gradient with floating bubbles
Guides 4 min read

Capacitor Custom Native Header UI on iOS (Free Guide)

A Capacitor app's web origin shows in the header. Make it native: respect the safe area, use iOS nav-bar conventions, and reference a free VP0 iOS design.

Lawrence Arya · May 30, 2026