创建你的第一个 visionOS App

本文为您介绍如何创建一个在 Apple 的 Vision Pro 上运行的应用程序。

环境搭建

首先需要从官网下载 Xcode 15 Beta 版本。

跳转链接:developer.apple.com/download/al...

下载完成后直接解压缩,将解压后的文件移动到应用程序(Applications)目录下,就可以启动 Xcode 了。启动 Xcode 后勾选 visionOS 平台下载安装:

创建项目

下载完成后,可以在面板中直接选择创建新项目,或者通过 File > New > Project 来创建新项目:

创建项目窗口选择 visionOS 选项,如果这里提示 visionOS Not Installed,直接点击 GET 去下载即可:

选择 App,最后点击 Next 来到项目配置窗口:

常规的内容包括 Product Name、Team 和 Organization Identifier;下面几个选项简单介绍一下:

  • Initial Scence:初始化场景,有两个选项 Window 和 Volume,如果展示 2D 内容,选择 Window,3D 内容则是 Volume。

  • Immersive Space Renderer:沉浸式空间渲染器,也就是选择渲染引擎,有三个选项 None、RealityKit 和 Metal。

  • Immersive Space:沉浸式空间,包括 Mixd (混合)、 Progressive (渐进)和 Full (填充)。对应 App 中的 immersionStyle 的参数 selection:

    swift 复制代码
        struct VisionDemoApp: App {
            var body: some Scene {
                WindowGroup {
                    ContentView()
                }
                ImmersiveSpace(id: "ImmersiveSpace") {
                    ImmersiveView()
                }.immersionStyle(selection: .constant(.full), in: .full)
            }
        }
    • full:一种沉浸式风格,显示无限制的内容,遮盖透明视频(用户的手除外)。
    • mixd:一种沉浸式风格,显示与其他应用内容混合的无限内容以及透明视频。
    • progressive:一种沉浸式风格,其中内容显示时不应用剪切边界。

    这里的概念如有翻译不正确敬请指正。

这里沉浸式空间默认 Mixd,运行项目:

Others

VisionOS 上的应用提供了对 SwiftUI 的深度支持,尽管你也可以使用 UIKit 开发 App 的部分功能,但 VisionOS 通过 SwiftUI 提供的很多平台独有的功能。所有的 SwiftUI 程序都可以通过 visionOS 来显示到 Vision Pro 设备上,大大提高了软件生态,降低了开发者的学习成本。

相关推荐
文件夹__iOS3 小时前
SwiftUI 核心选型:class + ObservableObject VS struct + @State
ios·swiftui·swift
Wenzar_2 天前
# 发散创新:SwiftUI 中状态管理的深度实践与重构艺术 在 SwiftUI 的世界里,**状态驱动 UI 是核心哲学**。但随
java·python·ui·重构·swiftui
大熊猫侯佩2 天前
GeometryReader 生存指南(下集):与恶魔共舞——陷阱、禁忌与最终救赎
swiftui·performance·layout·frame·stack·geometryreader·preferencekey
大熊猫侯佩3 天前
别被系统绑架:SwiftUI List 替换背后的底层逻辑
swiftui·swift·apple
东坡肘子5 天前
从 OpenSwiftUI 到 DanceUI:换个方式 Dive SwiftUI -- 肘子的 Swift 周报 #132
人工智能·swiftui·swift
用户79457223954135 天前
【SwiftyJSON】拯救你的 as? [String: Any]——链式 JSON 访问的正确姿势
swiftui·objective-c·swift
用户79457223954135 天前
【Moya】为什么你的 Alamofire 代码需要再封装一层?
swiftui·objective-c·swift
空中海6 天前
第二章:SwiftUI 视图基础
ios·swiftui·swift
择势6 天前
MVVM 本质解构 + RxSwift 与 Combine 深度对决与选型指南
swiftui·swift·rxswift