WWDC Quick Look 💓 By SwiftGGTeam
Xcode, agents, and you

Xcode, agents, and you

观看原视频

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 支持三种方式传递设计意图:

  1. 图片附件:你可以上传手绘草图或参考图,agent 会据此生成对应的 UI 代码。
  2. 内联注释(inline annotations):在代码编辑器中选中某一行,直接添加注释说明修改需求。注释会携带精确的代码位置上下文,agent 的修改只影响标注区域,不会波及无关代码。
  3. 实时预览: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

评论

GitHub Issues · utterances