WWDC26 Platforms State of the Union 精彩回顾
WWDC26 Platforms State of the Union Recap
2026年6月10日
一句话判断
这场 Session 最值得关注的一件事是 Xcode 27 彻底拥抱 Agentic Coding(智能体编程),AI 终于从“代码补全器”进化成了能直接操作 Device Hub(设备中心)跑 UI 自动化测试的“初级工程师”。
这场 Session 讲了什么
Apple Intelligence 底层大换血,Apple 拉上 Google Gemini 重建了 Apple Foundation Models(苹果基础模型),并推出了专门跑端侧模型的 Core AI 框架。对开发者来说,Foundation Models framework 现在支持 image input(图片输入)和 cloud models(云端模型),还能用 Dynamic Profiles(动态配置)在运行时切换工具,大幅减少写 AI Agent 的胶水代码。
Xcode 27 是今年的绝对主角,直接砍掉 Intel 支持让体积缩小了 30%。最大的变化是 Agentic Coding,Xcode 集成了 Anthropic、OpenAI 和 Google 的模型。AI 对话现在能像普通文件一样在 Navigator 里 split(分屏)和 stack(堆叠)。更狠的是,Agent 在 Plan(计划)模式下会先出方案再写代码,甚至能直接驱动运行中的 App 进行 tap(点击)和 scroll(滚动)测试。
SwiftUI 和平台层面主要是补齐短板。Nested layouts(嵌套布局)调整大小的速度提升了一倍,iOS App 在 iPad 和 Mac 上终于支持自由拖拽调整大小。设计上推了 Liquid Glass(液态玻璃)风格,macOS 窗口圆角统一收紧,视觉更加一致。
值得深挖的点
Xcode 27 的 Agentic Coding 与 UI 测试闭环
Xcode 27 把 AI 对话变成文件(File)这个设计非常妙。以前 Copilot 的聊天窗口是个游离的侧边栏,现在你可以同时开三个 Agent,一个写 SwiftUI,一个写测试,一个查 Bug,像管理代码文件一样管理 AI 上下文。更关键的是 Agent 能直接驱动 Device Hub 里的 App。它不仅能写代码,还能操作你的 App 来验证 UI。这直接解决了 AI 编程最大的痛点:它不知道自己写的代码跑起来是什么样。不过坑也很明显,Agent 驱动 UI 高度依赖 Accessibility(无障碍)标签,如果你的 View 没加 a11y 描述,Agent 就会变成瞎子,找不到按钮在哪。
Core AI 与 Foundation Models 的端云路由
Apple Intelligence 引入 Google Gemini 并推出 Core AI,说明 Apple 认清了端侧算力的物理极限。Foundation Models framework 现在支持复杂任务路由到 cloud models(云端模型)。配合 Dynamic Profiles(动态配置),你可以少写很多逻辑,直接在运行时 swap(替换)工具。这种端云结合的设计很务实,但 trade-off 是调试难度直线上升。端侧模型和云端模型的输出格式、延迟差异巨大,如果你的 App 强依赖流式输出,处理这两种模型的 fallback(降级)逻辑和状态同步会让你掉不少头发。
代码片段
1. Foundation Models 动态配置与端云路由
场景:使用 Foundation Models framework 配置一个带图片输入和云端 fallback 的 Agent,系统自动决定使用端侧还是云端模型。
import FoundationModels
// 定义一个动态配置,让 Agent 可以根据上下文切换工具
let agentProfile = DynamicProfile(
instructions: "你是一个图片分析助手,如果图片太复杂请调用云端工具",
tools: [ImageAnalysisTool(), CloudFallbackTool()]
)
// 运行 Agent,传入图片输入
let response = try await agentProfile.run(
with: .image(selectedImage)
)
// 处理流式输出,注意端侧和云端模型的延迟差异
for await chunk in response.stream {
updateUI(with: chunk)
}
坑:端侧和云端模型的输出 token 速度完全不同,UI 层必须做好防抖和 Loading 状态,否则用户会觉得 App 在卡顿。
2. SwiftUI 任意容器的 Drag to Reorder
场景:在自定义的 LazyVGrid 中使用新的拖拽排序和滑动操作,不再局限于 List。
struct CustomGridView: View {
@State private var items = ["A", "B", "C", "D"]
var body: some View {
LazyVGrid(columns: [GridItem(.adaptive(minimum: 100))]) {
ForEach(items, id: \.self) { item in
Text(item)
.frame(width: 100, height: 100)
// 现在任何容器都支持拖拽排序和滑动操作
.draggable(item)
.dropDestination(for: String.self) { droppedItems, _ in
// 处理拖拽放下后的数组重排逻辑
reorderItems(droppedItems)
return true
}
.swipeActions {
Button("删除", role: .destructive) {
deleteItem(item)
}
}
}
}
}
}
坑:在非 List 容器中使用 dropDestination 时,需要自己手动计算索引并更新 @State 数组,系统不会像 List 那样自动帮你做动画和重排。
3. View Annotations API 让 Siri 操作屏幕
场景:给屏幕上的特定按钮添加 Annotation,让 Apple Intelligence 能够识别屏幕元素并执行操作。
struct CheckoutButton: View {
var body: some View {
Button("结账") {
processCheckout()
}
// 添加视图注解,让 Apple Intelligence 能够识别屏幕元素
.viewAnnotation(
id: "checkout_action",
description: "点击此按钮完成订单支付"
)
}
}
坑:description 必须写得非常明确且具备动作导向。如果描述太模糊,Siri 在复杂界面中可能会认错元素,导致误操作。
最佳实践
- Xcode 27 迁移与 CI 调整:Xcode 27 是 Apple Silicon only(仅限苹果芯片)。如果你的 CI/CD 机器还是 Intel 的 Mac mini,赶紧换掉。同时 Device Hub 取代了传统的 Simulator,自动化测试脚本里的
xcrun simctl命令需要全面排查和更新。 - 把 Accessibility 当作 AI 的基石:既然 Xcode Agent 和 Siri 都通过 View Annotations API 和 a11y 标签来理解你的 App,现在写 UI 必须把无障碍标签写全。这不只是为了视障用户,更是为了让 AI 能正确操作你的界面。
- 端云模型路由的降级策略:使用 Foundation Models 时,务必为云端模型调用加上超时和重试机制。端侧处理失败 fallback 到云端时,记得在 UI 上给用户明确的 loading 状态。
还有什么值得关注
- Xcode 27 官方主题:终于内置了 Emerald、Neon Noir 和 Coral Reef 等高质量主题,颜色贯穿整个 App,不用再满世界找第三方高亮插件了。
- Spatial Preview Framework:visionOS 开发者的福音,可以直接从 Mac 把 3D 模型串流到头显周围的空间里预览,省去了频繁打包的折磨。
- Icon Composer 支持 Refraction effects:App 图标现在可以加折射效果了,配合 macOS 统一的更紧凑的窗口圆角,视觉一致性提升明显。