Platforms State of the Union
Essentials 进阶 20m

2023 平台技术全景

Platforms State of the Union

2023年6月5日

在 Apple 官方观看视频

一句话判断

这是 WWDC 2023 的技术方向总览——从 Swift Macros 到 SwiftUI 新特性,从 SwiftData 到 visionOS SDK,一场 Session 勾勒出 Apple 全平台的年度技术演进蓝图。

这场 Session 讲了什么

这是 Apple 每年 WWDC 的重头戏——Platforms State of the Union。Darin Adler 开场,多位 Apple 工程负责人轮流登台,系统性地介绍了 2023 年所有平台的技术更新。

Swift 和 Swift 语言更新:Holly Borla 介绍了 Swift 5.9 的核心特性——Macros(宏)系统是最大的亮点。宏允许通过注解自动生成代码,在编译期检查正确性,还能在 Xcode 中展开查看和调试。Swift-C++ 互操作性也在今年引入,两个语言可以在同一个项目中直接调用,不需要桥接层。

SwiftUI 和 UI 框架:新的 Observation 框架简化了数据流管理。SwiftData 提供了全新的持久化方案。交互式 Widget 来到了 iOS 和 iPadOS。macOS 有了全新的 Widget 体验。

工具链改进:Xcode 15 带来了更好的预览、字符串目录(String Catalogs)、依赖签名验证等功能。Xcode Cloud 工作流更加灵活。

硬件能力利用:框架层面对新传感器和芯片能力的封装,让开发者更容易利用硬件特性。

价值观优先的设计:隐私、无障碍、安全等方面的持续投入。

visionOS:压轴介绍了全新的 visionOS 平台 SDK——空间计算应用的构建方式、RealityKit 的新能力、空间输入和手势交互等。

值得深挖的点

Swift Macros 的设计哲学:宏不是简单的文本替换,而是基于代码结构的语义级代码生成。编译期能提供自定义错误信息和 Fix-It。Xcode 中可以展开查看、设断点调试——“没有秘密”是它的设计原则。

Swift-C++ 互操作的实际意义:大量游戏引擎和底层系统代码使用 C++。现在可以在同一个项目中混合使用 Swift 和 C++,共享类、函数甚至模板特化。Swift 的安全特性还能消除 C++ 代码中常见的未定义行为。

SwiftData 取代 Core Data 的信号:SwiftData 用 @Model 宏和 @Query 属性包装器取代了 Core Data 的 NSManagedObject 和 NSFetchedResultsController。代码量大幅减少,与 SwiftUI 的集成更自然。

交互式 Widget 的扩展:Widget 现在支持按钮点击和开关切换,通过 App Intents 实现交互。这意味着 Widget 不再只是信息展示,而是真正的功能入口。

代码片段

// Swift Macros - 编译期 URL 校验
let url = #URL("https://example.com")  // 合法,编译通过
let badUrl = #URL("https://example.com/has space")  // 编译错误,自动提供 Fix-It

// 附带宏 - 自动生成 async 版本
@AddAsync  // 为基于 completion handler 的函数自动生成 async/await 版本
func fetchContent(completion: @escaping (Result<Data, Error>) -> Void) {
    // 原有实现不变
}

// 调用方式
let content = try await fetchContent()  // 宏生成的 async 版本
// SwiftData - 新的持久化方案
@Model
class Trip {
    var name: String
    var destination: String
    var startDate: Date
}

// SwiftUI 中查询
@Query var trips: [Trip]
// 新的 Observation 框架
@Observable
class TripPlanner {
    var selectedDestination: String = ""
    var trips: [Trip] = []
    // 不需要 @Published,属性变化自动触发视图更新
}

最佳实践

  • 把 Platforms State of the Union 当作年度技术路线图:不需要一次记住所有内容,但要知道 Apple 技术发展的方向,以便规划自己产品的技术栈演进。
  • 关注 Swift Macros 的生态发展:社区已经在用宏实现一些最常见的语言特性请求。通过 Swift Package 共享宏会成为新的开发模式。
  • 新项目优先考虑 SwiftData:如果不需要兼容旧系统,SwiftData 比 Core Data 更适合新项目的持久化需求。
  • 利用新的互操作性扩大 Swift 的应用范围:C++ 互操作意味着 Swift 可以进入更多之前被 C++ 占据的领域,如游戏引擎和高性能计算。
  • 将隐私和无障碍视为基本要求而非可选功能:Apple 在框架层面持续强化这些能力,利用它们而不是自己造轮子。

还有什么值得关注

  • visionOS 是今年最重要的新平台,State of the Union 中对 SDK 做了初步介绍,详细的开发指南需要看专门的 visionOS Session。
  • 300+ 框架构成了 Apple 平台的完整能力图谱——不需要每个都了解,但要知道它们的存在,在需要时能找到合适的工具。
  • Session 强调”我们也是开发者”——Apple 自己的应用使用同样的语言、工具和框架。这意味着框架的设计会越来越面向实际开发需求。
  • String Catalogs、依赖签名验证等工具链改进虽然不如语言特性那样引人注目,但对日常开发效率的提升是实质性的。
  • 交互式 Widget + App Intents 的组合为应用提供了新的触达用户的路径——不再需要用户打开应用才能执行操作。
WWDC 2023