创建你的第一个 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 设备上,大大提高了软件生态,降低了开发者的学习成本。

相关推荐
东坡肘子2 天前
当 Build in Public 重新转入地下 -- 肘子的 Swift 周报 #157
人工智能·swiftui·swift
OliverQiu3 天前
开源一个 macOS 小工具:集中管理 ChatGPT 的网络启动配置
macos·chatgpt·swiftui·mac·proxy·codex·dmg
传奇开心果编程7 天前
【SwiftUI提高练中学】第9课 安全与隐私
swiftui·移动开发·swift·编程语言理论·开发范式·编程框架·声明式ui
传奇开心果编程7 天前
【声明式UI开发实用技术学与练】第8课 状态提升与下放
学习·flutter·react native·ui·swiftui·composer
东坡肘子7 天前
Swift Server,又多了一个 Google -- 肘子的 Swift 周报 #156
人工智能·swiftui·swift
传奇开心果编程8 天前
【现代声明式UI学与练】第4课 列表渲染与 key——如何高效渲染列表、key 的作用、列表重排时的状态保持
学习·flutter·react native·ui·swiftui·android jetpack
传奇开心果编程9 天前
【SwiftUI提高练中学】第8课 网络层架构:拦截器、重试、缓存与离线优先
学习·macos·ui·ios·swiftui
传奇开心果编程9 天前
【现代声明式UI学与练】第7课 组件通信——父传子、子传父、跨层级通信、状态提升与 Context
学习·flutter·react native·ui·swiftui·android jetpack
tink9 天前
告别 Xcode IDE:用 VS Code + SweetPad + XcodeGen 开发 iOS 应用的完整指南
ios·swiftui·xcode
传奇开心果编程9 天前
【现代声明式UI学与练】第9课 性能优化——渲染优化、列表优化、内存优化、启动优化
学习·flutter·react native·ui·性能优化·swiftui·android jetpack