抢占先机,搞定visionOS 需要做好这些准备

5,487 阅读8分钟

无论您已经在 App Store 上拥有应用程序,还是这是您第一次为 Apple 平台开发应用程序,您现在都可以做很多事情来为本月晚些时候到来的 visionOS SDK 做好准备。

了解如何针对 visionOS 进行开发。

通过探索46场专题讨论空间计算的会议,开始您的开发之旅。了解更多关于visionOS的信息,发现如何为空间计算进行设计,并了解了如何使用Xcode、Reality Composer Pro和苹果公司的其他开发工具。

了解 visionOS

采用最新的最佳实践。

SwiftUI 是创建适用于任何平台的界面的最佳方式。其声明性语法和可视化设计工具可让您快速构建和测试代码。虽然您可以使用 UIKit 或其他技术构建应用程序,但 SwiftUI 是为 visionOS 构建空间内容的基础技术。

为您的界面采用场景。

场景是组织应用程序 UI 的基本方式。它们在适用于您的 iPadOS 和 iOS 应用程序的 SwiftUI 和 UIKit 中可用,而在 visionOS 中,您必须使用场景来呈现您的界面。

设计灵活的界面布局。

当您构建具有灵活布局的应用程序时,您可以轻松地将您的代码带到新平台,例如 visionOS。在开发过程中,不要忘记在不同的设备和设备方向上测试您的布局。确保布局更改有效且正确地进行动画处理。

采用标准手势和输入。

内置的手势识别器可以轻松支持任何平台,而 visionOS 会为您将输入映射到这些手势识别器。尽量减少自定义输入和手势识别器的使用,这可能需要在 visionOS 中进行设计更改。

支持多种方式与您的内容进行交互。

添加对命令菜单的支持,以便人们可以使用连接的键盘执行任务。为您的应用程序添加辅助功能支持,以便使用专用设备的人可以与您的内容进行交互。即使在触摸或鼠标事件不可用时,这些交替交互也为人们提供了使用您的应用程序的方式。

使用前检查硬件和功能可用性。

许多框架提供检查以确定当前设备是否支持特定功能。例如,内核位置可让您确定设备上可用的位置服务。为避免在将您的应用程序引入 visionOS 时出现错误,请始终确保在使用它们之前当前设备上的功能可用。

让您的应用具有包容性。

易于访问和包容的应用程序可以改变人们的生活,而 visionOS 提供支持来帮助您实现这一目标。将您的应用程序国际化和本地化,以支持不同国家、地区和语言的更多用户。审核您的应用程序的辅助功能支持,使各种能力的人都能更轻松地导航和访问信息。选择包容性的语言和术语,让每个人都感到宾至如归。

避免特定于设备的代码和决策。

如果您根据当前设备类型做出决定,您的应用程序可能无法在 visionOS 中正确运行。与其根据设备惯用语做出决定,不如根据情境需求做出选择,并提供合理的默认行为。例如,使用系统提供的大小而不是预期的设备大小来放置视图。

更新调用已弃用 API 的代码。

Apple 会定期弃用框架和 API,以便为现代替代品让路。尽快迁移到这些现代替代品,以确保您的代码在 visionOS 中顺畅运行。

realitykit-96x96_2x.png

探索 RealityKit 和 3D 内容。

为 visionOS 构建的应用程序可以利用深度和无限画布来创造强大的沉浸感。了解如何使用 RealityKit 和其他框架为在 visionOS 中构建应用程序做准备。

考虑何时向您的界面添加 3D 元素。

您可以使用 3D 形状和网格来增强 visionOS 中的窗口,或者在人的周围环境中单独显示这些项目。购物应用程序可能会在其主窗口中的产品描述旁边显示商品的 3D 模型。然后它可能会让某人将物品拖出窗外,看看它在客厅里的样子。考虑如何将深度融入应用程序的窗口,以及何时可能还想添加音量或身临其境的场景。

探索 RealityKit。

RealityKit 是 Apple 用于 visionOS 的 3D 渲染引擎,现在它与 SwiftUI 深度集成,可帮助您构建清晰、响应迅速的立体界面。 3D 内容可以绑定到 SwiftUI 视图和状态,将 2D 和 3D 视觉元素无缝耦合在一起。如果您的项目已有 3D 内容,请考虑使用 RealityKit 来呈现该内容。

了解有关 MaterialX 着色器的更多信息。

MaterialX 是一种开放标准,得到领先的电影、视觉效果、娱乐和游戏公司的支持。了解如何在 reality composer Pro 中使用 MaterialX 构建表面和几何着色器。

了解有关 USDZ 的更多信息。

开始探索为您的 3D 内容创建 USDZ 资产所需的工具和技术。许多 3D 设计程序现在都提供 USDZ 导入和导出,从本月晚些时候开始,您可以使用 reality composer Pro 为您的项目构建 USDZ 资产。

audio-96x96_2x.png

准备下一级别音频和视频。

开始考虑您需要对应用程序的音频和视频内容进行哪些更改以支持 visionOS:

  • 准备您的应用程序的配乐。 即使在您当前的应用程序中,空间音频也会为您的内容添加另一个维度。该音频配乐在采用空间音频作为默认播放选项的 visionOS 中效果更好。利用相位和 AVFAudio 框架来构建您的音频内容并将其放置在您的场景中。

  • 开始为视频资产添加 3D 支持。 通过捕获 3D 视频并准备播放资产,为 visionOS 中立体观看的到来做好准备。 QuickTime 文档格式扩展允许您包含多个视频轨道以进行立体播放,但在需要时回退到单视场播放。使用 AVFoundation 播放这些资产以自动适应当前设备的播放。

  • 考虑替代触觉反馈。 如果您当前的应用程序使用触觉提供反馈,请准备好在 visionOS 中用声音替换这些触觉。开始构建音频替换库或考虑其他类型的反馈。

shareplay-96x96_2x.png

扩展 SharePlay 体验。

共享和协作是 visionOS 的内核部分。就像在 macOS 中一样,人们可以在 FaceTime 通话中与他人共享任何应用程序窗口。借助 SharePlay,下一代共享体验成为可能。

通过确定人们现在可以共享的活动,并使用群组活动框架来实施这些活动,让您的应用程序为 visionOS 中的 SharePlay 做好准备。考虑您可能需要在设备之间传递哪些附加信息以确保内容在视觉上保持同步。例如,除了窗口的内容之外,您可能还想共享窗口的滚动位置。头脑风暴人们如何在面对面的环境中享受您的应用程序的活动,并观看有关设计和构建空间 SharePlay 体验的 WWDC 会议。

xcode-beta-96x96_2x.png

调整应用程序的性能。

让性能成为您开发过程的重要组成部分。现在优化您的应用程序将使您在将其引入 visionOS 时更容易达到性能目标。定期收集性能指标,并使用这些指标在问题变得更大之前识别回归。

  • 注意你做了多少工作。确保您的应用程序执行的工作提供了切实的好处。优化算法以最大限度地减少应用程序对 CPU 和 GPU 资源的消耗。

  • 确定要测试的代码流和场景。构建 XC 测试用例以衡量应用程序最重要功能的性能。在不同的系统负载下运行这些测试以确定您的应用程序的行为方式。

  • 为您当前的应用设置性能和功率目标。为您的应用设置积极的性能目标,并使用 Instruments 监控这些目标。确保您的应用不会浪费电量执行不必要或重复的任务。

  • 采用持续集成 (CI) 工作流程。设置您的构建以在 Xcode Cloud 中运行。通过确保每次提交都保持代码库的质量和稳定性来采用 CI 思维方式。将与性能相关的测试作为测试套件的一部分运行。

asc-outline-96x96_2x.png

运行您的 iPad 和 iPhone 应用程序。

iPadOS 和 iOS 中可用的相同框架也包含在 visionOS 中。这意味着您的 iPad 和 iPhone 应用程序将在 Apple vision Pro 上运行,每个应用程序都作为一个具有原始外观和感觉的可缩放 2D 窗口。当 App Store 可用时,兼容的应用程序将自动可用,无需任何操作,为人们在 visionOS 中提供更多选择。本月晚些时候,您可以在 Apple vision Pro 上使用 Simulator 和 TestFlight 测试您的应用。如果您的应用不适合 Apple vision Pro,您可以在 App Store Connect 中编辑其可用性。