Platforms State of the Union
Essentials 进阶 52m

Platforms State of the Union

2025年6月9日

在 Apple 官方观看视频

一句话判断

如果说 Keynote 是面向用户的发布会,PSOTU 就是面向开发者的施工图 — Liquid Glass 的 API 落地细节、Foundation Models 的 tool calling 和 guided generation、Swift 6.2 的并发简化、Metal 4 的 neural rendering,全部在这里展开。

这场 Session 讲了什么

Platforms State of the Union 深入拆解了 WWDC25 所有开发者技术的实现层面。整场以四条主线展开:

Liquid Glass 设计与 API:从 glassEffectglassEffectContainer 到 toolbar spacer API、TabView accessory,系统展示了 SwiftUI/UIKit/AppKit 三个框架如何零代码或少量代码适配新设计。backgroundExtensionEffect 让图片延伸到 sidebar 安全区域外。Icon Composer 支持矢量导入、多层标注、多模式预览。

Foundation Models 框架:端侧模型通过量化和 speculative decoding 优化性能。@Generable 宏让 Swift struct 直接成为模型输出格式,@Guide 约束属性值范围。Tool calling 允许模型在推理过程中自主调用 Swift 定义的工具函数(如 MapKit 搜索)。支持流式输出和自定义 guardrails。

Xcode 26 + Swift 6.2:Xcode 内置 ChatGPT 和第三方模型接入,Coding Tools 提供代码级 Writing Tools 体验,playground 宏可预览非 UI 代码。Swift 6.2 的 inline arrays(栈上分配固定大小数组)、span 类型(安全的连续内存访问)、C/C++ 互操作增强、WebAssembly 支持。Containerization 框架开源,用于在 Mac 上运行 Linux 容器。

SwiftUI + visionOS + 游戏:WebView 组件、富文本编辑、3D Charts、10 万条数据列表 6 倍加载提速。visionOS 26 新增体积化 API、附近窗口共享、WidgetKit、2D 照片转 3D 空间场景。Metal 4 支持 shader 内推理网络、MetalFX 帧插值(Cyberpunk 2077 演示 M4 MacBook Air 稳定 60fps)。

值得深挖的点

  1. Liquid Glass 的 adoption 路径分三层:recompile 自动生效 -> 用新 API 精调(toolbar grouping、tint、search 位置)-> 自定义控件手动应用 glassEffect。Apple 提供了 Xcode 26 的 opt-out 选项保留旧设计,但会在下一个大版本移除。

  2. Foundation Models 的 @Generable + tool calling 组合拳意味着你可以构建一个完全本地运行的 agent:模型解析用户意图 -> 生成结构化请求 -> 自主调用 MapKit/数据库等工具 -> 流式返回结果。全程无网络、无 API key、无费用。

  3. Swift 6.2 的 concurrency 路线在纠偏。之前 Swift 6 的严格并发检查让很多开发者痛苦,现在 MainActor by default 和更少的 warning 意味着:如果你的代码本来就是单线程的(大部分 app UI 代码),编译器不再烦你。

  4. Containerization 框架是 Apple 官方的 Linux 容器方案,针对 Apple silicon 优化,开源在 GitHub。这意味着 Swift 服务端开发有了官方的本地开发环境支持。

  5. macOS Tahoe 是 Intel Mac 的终章。Apple silicon 的完整产品线两年前已完成过渡,现在 Apple 明确告诉开发者:是时候把所有精力放在 Apple silicon 上了。

代码片段

引导生成 + tool calling 完整示例

@Generable struct Itinerary {
    @Guide(.count(1...5))
    let days: [DayPlan]
}

struct POITool: Tool {
    let name = "findPOI"
    func call(arguments: Arguments) async throws -> String {
        let results = try await MKLocalSearch(request: .init(
            naturalLanguageQuery: arguments.query
       )).start()
        return results.mapItems.map(\.name).joined(separator: ", ")
    }
}

let session = LanguageModelSession(tools: [POITool()])
let stream = session.streamResponse(
    generating: Itinerary.self,
    prompt: "帮我规划大峡谷三日游"
)

最佳实践

  1. Liquid Glass adoption 不要一步到位。先 recompile 看效果,再用 toolbar spacer、tint 等 API 微调,最后处理自定义控件。很多自定义背景和边框现在可以删掉了。

  2. Foundation Models 用 playground 宏做 prompt engineering。在 Xcode 中用 #playground 快速迭代不同 prompt,找到最佳结果后再集成到 app。

  3. SwiftData 在今年获得了 model subclassing 和 entity inheritance。如果你之前因为数据模型灵活性不够而犹豫,现在可以重新评估。

  4. Metal 4 的 neural rendering 是游戏图形的下一个范式。在 shader 中直接跑推理网络计算光照和材质,这对光线追踪的性能优化意义重大。

  5. 对于服务端 Swift 开发者,立即试试 Containerization 框架。它提供了在 Mac 上创建、下载、运行 Linux 容器的完整工具链。

还有什么值得关注

  • App Intents 在 macOS Tahoe 的 Spotlight 中全面可用,用户可以直接从 Spotlight 调用你的 app actions 并填写参数。
  • visionOS 26 的 enterprise APIs 更加开放:UVC 视频和 Neural Engine 不再需要企业许可证。
  • SwiftCharts 3D 基于 RealityKit,在 visionOS 上可以放在空间环境中交互。
  • GameSave 框架让游戏轻松实现跨设备云存档。
  • WebKit 引入 Swift,使用新的 opt-in strict memory safety 特性确保与 C API 的安全交互。
基础