平台技术概览
Platforms State of the Union (ASL)
2022年6月6日
一句话判断
这是 WWDC 2022 的技术版”国情咨文”——如果你只想看一个 Session 了解今年整个 Apple 开发平台的技术方向,就看这个。
这场 Session 讲了什么
Apple 高管和工程团队负责人联合发布了 2022 年开发者平台的技术全景。内容覆盖三大主题:开发平台的愿景和演进(Swift + SwiftUI + Xcode 的三位一体)、应用与系统体验的深度集成、以及新的强大 API。
Swift 部分重点介绍了并发模型的扩展(async algorithms 包、distributed actors)、C++ 互操作性的进展。SwiftUI 部分涵盖了新的导航 API、高级图形效果、以及与 Swift Concurrency 的深度整合。Xcode 部分宣布了 Xcode Cloud 正式上线,并提供 2023 年底前的免费额度。
还介绍了 WidgetKit 的新功能(Live Activities、实时更新)、新的图表框架 Swift Charts、以及 vision相关框架的更新。
值得深挖的点
Swift + SwiftUI + Xcode 的三位一体。 Apple 明确了下一代开发平台的三大支柱:Swift 作为语言、SwiftUI 作为框架、Xcode Previews 作为工具。三者协同设计——Swift result builders 源自 SwiftUI 的组合结构,SwiftUI 的声明式视图由 Swift 值类型驱动,Xcode Previews 专门为两者打造。第一年就有超过 40,000 个 App Store 应用采用了 Swift Concurrency。
Distributed Actors。 在本地 actor 的基础上,Swift 新增了 distributed actors,支持跨进程、跨设备的 actor 通信。使用 distributed 关键字标记的方法可以被远程调用。这为 Swift on Server 场景提供了原生的分布式计算模型。
Xcode Cloud 正式发布。 CI/CD 服务终于正式上线。所有 Apple Developer Program 成员可获得每月 25 小时的免费额度(到 2023 年底)。它集成 TestFlight 和 App Store Connect,支持所有主流 Git 服务提供商,并提供 REST API。
Swift Charts。 全新的声明式图表框架,使用 SwiftUI 风格的 API 构建各种图表。支持自定义标记、坐标轴、交互,并内置无障碍支持(VoiceOver 导航和音频图表)。
Swift Concurrency 向后部署。 Swift Concurrency 现在可以部署到过去三年发布的所有操作系统版本,大大扩大了可用的用户群。
代码片段
// Distributed Actors 示例(Swift 新特性)
distributed actor TemperatureSensor {
distributed var currentTemperature: Double {
get throws { /* 获取温度 */ }
}
distributed func startMonitoring() {
// 远程可调用的方法
}
}
// Swift Charts 基本用法
import Charts
struct SalesChart: View {
let data: [Sale]
var body: some View {
Chart(data) { sale in
BarMark(
x: .value("月份", sale.month),
y: .value("销售额", sale.amount)
)
}
}
}
// Async Algorithms 包示例
import AsyncAlgorithms
// 合并两个异步序列
for await (user, location) in zip(userStream, locationStream) {
print("\(user.name) at \(location.city)")
}
// 节流:限制更新频率
let throttled = updateStream.throttle(for: .seconds(1))
最佳实践
- 开始采用 Swift Concurrency,它现在可以部署到大部分活跃设备
- 利用 Xcode Cloud 的免费额度建立 CI/CD 流水线
- 使用 Swift Charts 替代第三方图表库,获得原生性能和自动无障碍支持
- 关注 Distributed Actors 的进展,为未来的分布式场景做准备
- 将活跃开发的代码迁移到 SwiftUI,Apple 的框架更新优先支持 SwiftUI
还有什么值得关注
- Live Activities 和 ActivityKit 让应用可以在锁屏上展示实时信息
- WidgetKit 支持更频繁的更新和新的家族尺寸
- Swift Package Manager 继续增强,包括包插件(Package Plugins)支持自定义构建流程
- Xcode 14 在编辑器性能、调试工具和 Instruments 方面都有显著改进
- C++ 互操作性正在开发中,未来可以让 Swift 代码直接调用 C++ 库