本文我讲着重关注全平台,包括 visionOS 1, iOS 17,iPad OS 17,watchOS 10 等操作系统的最新特性。本文主要从开发者角度,解读这次 WWDC 中值得关注的技术内容。

今天开屏,Apple 用吹泡泡的人🫧 致敬开发者,这群敢于梦想,充满创造力的人们。刚好赶上 WWDC 开发者的节日,我们独立开发的 AI 记录应用 心光 App 也将于近期支持 iOS 17 ,应用众多特性本次发布会中提到的特性,欢迎体验。
关于 visionOS
先说下大家关注的,visionOS 提出了新概念,操作逻辑的是「窗口、体和空间」。
用户首先进入 visionOS 中的后:默认情况下,用户的视觉出现在 Shared Space,也是公共空间中,此时布局类似于桌面,用户拥有众多桌面视图中的一个。当用户视觉注意某个窗口,并且捏和确认视图后,画面会从平面转入立体,也就是从 Windows 进入 Volumes。
所有的底层,和 iOS App 一致,由 SwiftUI,RealityKit 和 ARKit 三个层级构成。
若你想让你的 UI 自动从 2D 页面,转换为 3D 页面,目前的方法是在 Xcode 中重新编译即可。在 visionOS 中,我们可以深度使用诸如材料,透明度,关注点等特性,来调节眼睛在 UI 中聚焦时 UI 的反馈。SwiftUI 诸如深度等修改器,负责在 3D 界面的深度。
自动视觉聚焦:在 RealityKit 在渲染过程中,会和 PS VR 类似,关注于重点内容聚焦。其光源特点也会继承当前外部环境的特色,支持 Material X 的各类纹理材质。
Xcode Canvas 目前完全支持 Canvas AR 预览了,也可以完全模拟 Vision Pro 设备的各种操作。只需要进入 Xcode 后,使用 Vision Pro 作为目标对象即可。
全新的 Reality Composer Pro App,是更偏向娱乐性质 Reality Composer 的升级版。可以自己调节 Shader,并且直接在 Vision Pro 中进行预览。下图所示,是多个 Nodes 点的渲染管线,在 Reality Composer Pro 也得到了支持,从 Maya 等建模软件中过来的小伙伴会对此比较熟悉。
Swift 编程语言更新
全新的 Macros 能帮助开发者延展 Swift 本身的语言特性。开发者可以用 Macros 来做诸如自定义 Codable 等模块,它也可以集成进入 Swift Package 中。Swift 语言同时直接支持了和 C++ 的链接,这个桥接是完全原生的,几乎不会有性能损失。
SwiftUI 特性更新
全新的 iPad 版本 Final Cut Pro 和 Logic Pro 全部都是用 SwiftUI 系的,今年新增了如下的能力。诸如动画 SF 图标、图表支持滑动、手势滑动速率等非常棒的功能。Animation Phase 能力许开发者进行不同状态间进行自动动画,只需要增加几个修改器,就能实现复杂动画啦,包括关键帧支持。关键帧甚至可以用在 Maps 等视图。
数据流动也进行了更新,今年的更新把重点放在了 @State 和 @Environment 上,其它的都用 Macro 解决了。这点可以大幅度了减轻我们在代码中,对于 EnvironmentState 和 StateObject 的使用。
全新的 Swift Data
看到新的数据系统的时候,忍不住感慨太强了,再也不用自己定义数据库,只需要一个 @Model 关键词即可,十分震撼。我们已经告别了复杂数据流,配合自定义 Xcode 数据库模型的时代。这些能力,也是基于 Swift Macros 在做,复杂的结构被大幅简化。我会在接下来报名的 Lab 中,深度跟进这部分内容。
WidgetKit、AppIntents、TipKit
本次更新的 WidgetKit 能力扩展至多个平台,无论是 Mac 还是手表。Widget 本身终于不再是一个简单的视图,而是能执行一些操作了。新的架构本身的操作完全在 Widget 执行,通过合理架构实现。如下图所示,Widget 本身支持视图动画,直接在 Xcode Canvas 中预览。
用于 App 智能化,意图管理的新版的 AppIntent 代码更简洁,同时可以用 Siri 来进行互动。
全新的 TipKit 框架,从零到一解决了用户指导的问题,如果用户已经学过了,就可以不显示了。如下图所示,它支持各种显示方式,同时也能比较灵活的自定义,并用 iCloud 同步。用户在一台设备上点击过了的提醒,下一台设备不会重复。
游戏特性更新
本次重点进行了游戏并入 Mac 平台的流程更新。这里讲的不是非常多,但主要是敲接流程改进,对于正在做游戏的小伙伴,值得关注。我个人也很好奇目前 Unity 和 Xcode 的链接,这点在 Session 中会有对应讲解。
全新的 HDR API
在过去,设备支持 HDR 修改没有统一的方式,业界也没有标准方法。新的 API 现允许开发者深度定制,修改 HDR 图片信息。对于诸如想要支持 HDR 标准的图片 App,或者摄影摄像相关的 App 很值得考虑这个新特点。
watchOS 全部用 SwiftUI 重写
今年又是 SwiftUI 重度应用的大年,Apple 将 SwiftUI 完全应用在 watchOS 的各个角落。你可以看到诸如 NavigationSplitView 的应用,也用诸如半透明材质效果,右侧小边栏按钮,半透明 Tab 视图修改器等 .tabViewStyle(.verticalPage) 。
Preview 终于不需要复杂代码了
这部分估计过去是很多开发者的噩梦,无聊重复的代码,导致 Canvas 在重度开发过程中几乎被无视。现在复杂写法被缩减为这一句,就可以在 Canvas 预览,大幅提高可用度。
总结
总的来说,WWDC 2023 确实是我认为最近几年最令人惊喜的大会。
visionOS 带我们进入了全新的虚拟世界,同时与发展很多年的 SwiftUI 的集成本身,让编程变得更轻松愉快。
Swift 编程语言的更新、全新的 Swift Data 以及 WidgetKit、AppIntents、TipKit 的对我们开发者来说拥有很多重度减负,也解决了之前一些流程上的问题。 游戏特性更新和全新 HDR API 等更新,为特定领域的开发者提供了更多机会。
邀请大家体验阅读我们对于标签系统的重新思考,也祝大家创作愉快!
