Highlight
Xcode 27 将 coding agents 从单一对话助手升级为贯穿开发全流程的协作工具,支持项目探索、计划模式、代码生成、预览验证、测试编写、并行编排等完整工作流,让开发者始终掌控创意方向。
核心内容
从探索项目到建立知识库
(00:56)接手一个新项目时,理清代码结构往往是最耗时的第一步。Xcode 的 coding agents 可以看到整个项目的上下文——源代码、构建设置、打开的文件、当前选中的代码区域——然后生成一份结构化的项目导览。
这份导览包含数据流概述、关键区域表格和源码引用链接。你可以点击链接直接跳转到对应文件,也可以让 agent 把导览内容保存为项目内的架构文档,变成团队共享的动态知识库。
(04:15)当你需要调研不熟悉的 API 时,agent 会自动调用 Apple Document Search 工具,从最新官方文档中获取信息,而不是依赖训练数据中的过时内容。这样你拿到的 SwiftUI Table 用法、SwiftData 关系模型建议都是当前版本准确的。
计划模式:先对齐,再写代码
(07:44)Xcode 27 新增了 plan mode(计划模式)。在对话中输入 /plan,agent 会先与你讨论实现方案,生成一份 Markdown 格式的计划文档,等你确认后才开始写代码。
计划模式解决了 agent 快速生成代码但方向跑偏的问题。你可以在计划阶段排队发送补充要求,agent 会在完成当前任务后依次处理。agent 也会主动提问澄清需求,比如询问要展示哪些数据指标、用什么图表类型。这种来回讨论让最终方案更贴近你的真实意图。
(10:09)计划确认后,agent 开始实施。每处代码修改都会以 diff 形式显示在 artifacts 面板中。agent 会自动调用 Xcode 的构建工具验证代码是否正确编译,遇到编译错误会自行迭代修复。完成后还会渲染 SwiftUI Preview,让你直观看到 UI 效果。
精细化调整:草图、内联注释与预览
(14:40)agent 生成的代码只是起点,视觉细节的打磨需要你的参与。Xcode 支持三种方式传递设计意图:
- 图片附件:你可以上传手绘草图或参考图,agent 会据此生成对应的 UI 代码。
- 内联注释(inline annotations):在代码编辑器中选中某一行,直接添加注释说明修改需求。注释会携带精确的代码位置上下文,agent 的修改只影响标注区域,不会波及无关代码。
- 实时预览:agent 在修改过程中会不断渲染 Preview,形成”生成-预览-修正”的自验证循环。
演示中,演讲者先在 iPad 上用 Freeform 手绘了一张折线图草图,上传后 agent 生成了匹配的 Swift Charts 代码。接着他用内联注释在图表代码上标注了两处修改:添加淡入动画、调整趋势线颜色。agent 只修改了这两处,其余代码保持不变。
并行编排:多会话同时推进
(18:54)Xcode 27 支持同时开启多个独立对话,各自执行不同任务。演示中,演讲者同时启动了两个对话:
- 本地化:将应用所有用户可见字符串翻译成菲律宾语,自动配置 Strings Catalog
- 无障碍:为所有交互元素添加 VoiceOver 标签和 accessibility identifiers
每个对话中的 agent 会自动发现并使用合适的工具。本地化任务被拆分为多个子任务,由 sub-agents 并行处理;无障碍任务则在视图层遍历添加标签。两个工作流独立运行,互不干扰。完成后,应用同时具备了多语言支持和完整的辅助功能支持。
详细内容
Agent 可用的 Xcode 工具
(18:54)Xcode 为 agents 提供了一套工具集,agent 会根据任务自动发现和调用:
| 工具 | 用途 |
|---|---|
| Apple Document Search | 搜索最新官方文档,获取准确的 API 信息 |
| Build | 编译项目,验证代码正确性 |
| Preview Rendering | 渲染 SwiftUI Preview,验证 UI 效果 |
| Run All Tests | 运行测试套件,包括 agent 编写的新测试 |
| Machine Translation | 自动翻译用户可见字符串 |
| 自定义工具 | 开发者可以添加自己的工具供 agent 调用 |
这些工具用 代替由开发者手动选择,agent 根据当前任务自动匹配。比如调研 API 时自动调用 Document Search,生成代码后自动调用 Build,涉及 UI 时自动调用 Preview Rendering。
对话界面结构
(05:07)每个 agent 对话界面分为左右两栏:
- 左侧 transcript:显示对话记录,包括进度说明、工具调用、sub-agent 运行状态等
- 右侧 artifacts:显示 agent 产出的文件、代码修改 diff、预览图等
你可以只看最新消息的产物,也可以查看整个对话的所有产物。代码修改以 diff 形式呈现,新增文件直接出现在项目中。
使用内联注释的示例
(17:01)内联注释的使用方式:
// 在代码编辑器中选中以下行,添加注释:
// "Add a subtle fade-in animation here"
Chart {
ForEach(workoutData) { data in
LineMark(
x: .value("Date", data.date),
y: .value("Volume", data.volume)
)
.foregroundStyle(.blue) // 注释:"Change this to match our app theme"
}
}
关键点:
- 内联注释绑定到具体代码行,agent 能精确定位修改位置
- 注释携带周围代码作为上下文,agent 理解修改的语义环境
- 修改范围被限制在注释标注的区域,不会扩散到无关代码
- 适合微调已知位置的细节,如颜色、动画、文案等
并行编排的工作方式
(19:38)编排模式下,主 agent 负责规划,sub-agents 负责执行:
主对话:"Localize the app into Filipino"
|
+-- 发现 Machine Translation 工具
|
+-- 拆分任务:
+-- Sub-agent A: 翻译 Workout 视图
+-- Sub-agent B: 翻译 History 视图
+-- Sub-agent C: 翻译 Insights 视图
+-- Sub-agent D: 配置 Strings Catalog
关键点:
- 主 agent 读取工具描述,理解能力边界
- 任务被拆分为可并行执行的子任务
- 每个 sub-agent 独立调用翻译工具处理自己的部分
- 开发者可以随时查看各任务的进度
核心启发
1. 用 agent 生成项目架构文档
做什么:让 agent 分析项目结构后生成 ARCHITECTURE.md,作为团队 onboarding 文档。
为什么值得做:agent 能看到完整项目上下文,生成的文档包含数据流、关键文件引用、模块关系,比人工维护更准确。且 agent 在后续修改代码时会自动更新这些文档。
怎么开始:打开一个新对话,提示词参考:“Summarize this project’s data models, view hierarchy, and architecture. Then create two markdown documents in the project root documenting the findings.”
2. 用 plan mode 设计新功能
做什么:在实现任何新功能前,先用 /plan 让 agent 产出详细方案文档。
为什么值得做:agent 生成代码很快,但方向容易跑偏。plan mode 把”对齐意图”和”写代码”分开,减少返工。演示中 agent 主动询问了数据展示方案,最终选择了”按运动项目查看”和”顶层摘要”两种视图。
怎么开始:在 agent 对话中输入 /plan,描述功能目标、约束条件和验收标准。与 agent 讨论几轮后确认计划,再进入实施阶段。
3. 用并行对话批量处理技术债务
做什么:同时开启多个对话,分别处理本地化、无障碍适配、代码重构等独立任务。
为什么值得做:演示中本地化 + 无障碍两项工作原本需要数小时手工完成,通过两个并行对话在几分钟内搞定。sub-agents 自动拆分任务并行执行,效率提升显著。
怎么开始:为每个独立任务创建一个对话,描述高层目标即可。agent 会自动发现合适工具并协调执行。
4. 用手绘草图 + agent 快速迭代 UI
做什么:在 iPad 上画 UI 草图,拍照或截图传给 agent,让其生成对应代码。
为什么值得做:从”想象 UI 长什么样”到”看到实际效果”的周期从小时级缩短到秒级。agent 会生成多个选项的预览,你选中最合适的再细化。
怎么开始:在 agent 对话中附加图片(草图或参考图),提示词如:“Add a line chart to InsightsView matching the style in this sketch.”
5. 让 agent 编写并运行测试
做什么:功能开发完成后,让 agent 为新代码编写单元测试并运行验证。
为什么值得做:演示中 agent 为新 SwiftData 模型编写了 12 个测试用例,全部通过。agent 能看到现有测试套件的结构,生成的测试风格与项目保持一致。
怎么开始:提示词:“Write unit tests for the SwiftData model changes and run the test suite to verify.”
关联 Session
- 227 - Create UI Prototypes using Agents in Xcode — 深入讲解用草图、内联注释和预览与 agent 协作设计 UI
- 213 - Translate your app with agents in Xcode — 专门讲解 agent 驱动的本地化工作流
- 258 - What’s new in Xcode — Xcode 27 的整体新特性概览
- 262 - What’s new in Swift — 配合 session 中使用的 SwiftData 和 SwiftUI 新特性
- 267 - What’s new in Swift Testing — agent 自动编写和运行测试的机制详解
评论
GitHub Issues · utterances