How to Start Learning visionOS in 2025
Sebastian Kotarski
Where to Even Begin?
visionOS is Apple's platform for spatial computing, and it's growing fast. But if you're an iOS developer looking to get started, the amount of new concepts can feel overwhelming — RealityKit, Reality Composer Pro, immersive spaces, volumetric windows, hand tracking, spatial gestures... where do you actually start?
I've been working with AR and spatial computing for several years now, including building features with ARKit, shipping apps for Varjo XR headsets, and creating educational content around visionOS. Here's the path I'd recommend.
Step 1: Get Comfortable with SwiftUI
If you're still mostly writing UIKit, this is your first stop. visionOS is built entirely on SwiftUI — there's no UIKit equivalent for spatial apps. You don't need to master every modifier, but you should be comfortable with:
- View composition and state management (
@State,@Observable) - Navigation patterns (
NavigationStack,NavigationSplitView) - Layout basics (
HStack,VStack,Grid)
If you already know SwiftUI, skip ahead.
Step 2: Understand the Three Container Types
visionOS apps live in three types of containers, and understanding these is the key mental model:
- Windows — regular 2D SwiftUI views, floating in space
- Volumes — bounded 3D boxes where you can place RealityKit content
- Immersive Spaces — full 3D environments that blend with or replace the real world
Most apps use a combination. Your UI lives in Windows, your 3D content lives in Volumes or Immersive Spaces.
@main
struct MyApp: App {
var body: some Scene {
// 2D window for controls
WindowGroup {
ContentView()
}
// 3D volume for models
WindowGroup(id: "model-viewer") {
ModelView()
}
.windowStyle(.volumetric)
// Full immersive experience
ImmersiveSpace(id: "immersive") {
ImmersiveView()
}
}
}
Step 3: Learn RealityKit Basics
RealityKit is the 3D engine behind visionOS. You'll need to understand:
- Entities and Components — the building blocks of every 3D scene
- USDZ models — Apple's preferred 3D format
- Reality Composer Pro — the tool for assembling and previewing 3D scenes
- Anchoring — how to place content in the real world
You don't need to be a 3D artist. Start with free USDZ models from Apple's AR Quick Look Gallery and focus on loading and displaying them.
Step 4: Build Something Small
The fastest way to learn is to build. Start with a simple project:
- Create a visionOS app with a Window and a Volume
- Load a USDZ model into the Volume using RealityKit
- Add a tap gesture to interact with the model
- Add a simple animation (rotation, scaling)
This covers 80% of the concepts you'll use in real apps.
Structured Learning Resources
If you prefer a guided path, I've created two Udemy courses that cover this progression:
visionOS Fundamentals: 4-Part Course for Beginners
This is where I'd start. It's a concise course based on my YouTube tutorial series, structured for step-by-step learning with source code included. You'll learn:
- Adding USDZ models into RealityKit using Reality Composer Pro
- Creating orbit animations inside volumetric windows
- Implementing realistic object spinning
- Building creative effects with RealityKit
View the visionOS Fundamentals course on Udemy
ARKit & AI Crash Course: Build iOS 18 Apps with SwiftUI
Once you're comfortable with the basics, this course goes deeper into ARKit and AI integration — skills that translate directly to building more advanced visionOS experiences:
- ARKit setup and world tracking
- CoreML integration for object detection in AR
- Building production-ready AR features
- Combining AI with augmented reality
View the ARKit & AI course on Udemy
What About ARKit on visionOS?
If you're coming from iOS ARKit development, be aware that visionOS ARKit works differently. There's no ARSession — the system manages world tracking automatically through ARKitSession and data providers. Hand tracking replaces touch input entirely.
I've written a separate deep dive on this: visionOS Migration: What Every iOS Developer Gets Wrong.
My Advice
Don't try to learn everything at once. The progression that works:
- SwiftUI fundamentals
- visionOS container model (Windows, Volumes, Spaces)
- RealityKit basics with simple USDZ models
- Gestures and interactions
- ARKit on visionOS (when you need real-world anchoring)
Build small projects at each step. The concepts click much faster when you have something running in the simulator.
If you're working on a visionOS project and need help, feel free to book a call — I'm happy to discuss your specific situation.
Tags
Share this article
Need Help With Your iOS Project?
I help startups and enterprises solve critical iOS, ARKit, and visionOS issues. From performance problems to app store rejections.