IOS 08 Jun, 2026 WWDC

我把 1032 场 WWDC 做成了一个可以提问的中文知识库

wwdc-notes 收录 2020 到 2025 共 1032 场 WWDC Session,既提供面向人的中文浏览网站,也提供给 Agent 使用的 WWDC Skill,让 Apple 平台问题能回到具体 Session 和技术演进里。

阅读信息

共 4313 字 预计 15 分钟
我把 1032 场 WWDC 做成了一个可以提问的中文知识库

北京时间 6 月 9 日凌晨,WWDC26 就要开场了。

如果你也做 Apple 平台开发,大概率已经熟悉这个节奏:Keynote 看个热闹,Platforms State of the Union 标出今年的大方向,接下来几天 Session 一场接一场发布。刚开始每个话题都想看,过一周收藏夹里堆满视频,等真正遇到问题时,又得重新搜索:这个 API 是哪一年讲的?SwiftUI 的推荐写法变过几次?Swift 6 的并发迁移到底应该从哪里下手?

人读的时候,需要一个能按年份、主题和关键词慢慢翻的中文入口。Agent 回答问题时,需要的是另一种东西:能把建议落回具体 Session 的来源。wwdc-notes 做了这两件事:一个给人浏览的网站,一个给 Codex 等 Agent 调用的 WWDC Skill。

面向人的 WWDC 中文知识库

wwdc-notes 当前收录 1032 场 Session,覆盖 2020 到 2025 这六届 WWDC:

整体网页风格仿照 Apple 设计,左侧是年份和分类,右侧是具体 Session。想补 WWDC 特定年份内容,从年份进入;想系统看 Developer Tools 或 Machine Learning,从分类进入;已经知道关键词,直接搜索。

一篇 Session 笔记的结构设计

单篇笔记的提纲,没有按视频时间线来排。WWDC Session 往往会先铺背景、再演示 API、最后补一些边界条件;但读者打开文章时,最先想知道的通常是另一件事:这场 Session 里最值得关注的变化是什么,它为什么重要,放到项目里应该怎么用。

所以每篇文章基本都按这个顺序组织:先给一句话判断,再讲 Session 主线,然后挑 1-2 个值得深挖的点展开,最后补代码片段、最佳实践和一些容易忽略的细节。以 WWDC 2025 的 What’s new in SwiftUI 为例。

  1. 一句话判断:

SwiftUI 这次最值得关注的不是 Liquid Glass 的视觉变化,而是 TextEditor 终于支持了 AttributedString——用纯 SwiftUI 构建富文本编辑器第一次成为现实。

  1. Session 主线:

过去五年里,任何需要富文本编辑的 SwiftUI 应用都不得不桥接 UITextView,写一堆 UIViewRepresentable 样板代码。现在 TextEditor 原生支持 AttributedString、选区管理和查找导航,这条桥接层终于可以拆了。

  1. 值得深挖的点:

TextEditor 的富文本支持:为什么等了这么久

@Animatable 宏:编译器替你写代码

  1. 代码片段:
// @Animatable 宏:一行代码替代过去 20 行的 Animatable 协议实现。
@Animatable
struct PulseRing: View {
    var scale: CGFloat  // 自动获得动画能力

    var body: some View {
        Circle()
            .stroke(.blue, lineWidth: 3)
            .scaleEffect(scale)
    }
}
// 坑:如果属性类型不支持 VectorArithmetic,编译器会报错,
// 但错误信息不一定能直接告诉你哪个属性有问题
  1. 最佳实践:

已有项目:xxx

新项目:xxx

visionOS 开发者:xxx

  1. 还有什么值得关注:

scrollEdgeEffectStyle() 为滚动视图带来边缘视觉效果,和 Liquid Glass 配合效果很好

完整文章内容:SwiftUI 新特性

面向 Agent 的 Skill

浏览网站适合“我想了解一个领域”。当你已经卡在一个具体问题上,比如迁移 Swift 6、定位 SwiftUI 卡顿、选择 visionOS 场景形态,再去网页里一篇篇翻就慢了。这时候更自然的入口,是直接问 Agent。为了方便 Agent 理解这些 wwdc 知识,我把视频内容「蒸馏」成了一个 Skill。

wwdc-notes Skill 做的事很简单:先判断问题属于 SwiftUI、Swift Concurrency、Xcode、Machine Learning、Spatial Computing 等哪个领域,再从 1032 场 Session 中找证据。

一次对照实验

让两个独立的 Codex subagent 回答同一个问题:

  • 模型和 reasoning effort 相同;
  • 问题、字数限制和输出语言相同;
  • 都不使用网络;
  • 唯一区别是其中一个加载了 wwdc-notes Skill。

问题是:

我正在将一个已有 SwiftUI 项目迁移到 Swift 6。Sendable、Actor isolation 和 @MainActor 应该如何逐步处理?请说明迁移顺序、常见误区和依据。

不使用 Skill

未使用 Skill 的回答并不差。它给出了清楚的五步迁移顺序:

先升级编译环境,再确定 Actor isolation 边界,然后处理跨隔离边界的数据、旧回调和 @Sendable 闭包,最后启用 Swift 6 严格检查。

它也准确指出了多个常见误区,包括:

  • 不要给整个项目都加 @MainActor
  • 不要把 Sendable 当作共享状态的保护机制;
  • 不要随意使用 @unchecked Sendable
  • 不要把 Task.detached 当作普通后台线程工具。

这已经是一个能拿去开工的回答。但它停在“经验建议”这一层:没有来源,也没有说明这些建议分别来自 Swift 并发哪几年的演进。你要继续确认,还是得自己回去搜。

使用 WWDC Notes Skill

加载 Skill 后,回答并没有变得更“花”,但明显更像一份可以追溯的技术建议。差异主要体现在三处。

  1. 它把“逐步迁移”拆成了 Apple 在 WWDC24 里推荐的具体路径:

先为最底层 framework/package 开启 Strict Concurrency Checking = Complete,保持 Swift 5 模式,把警告清零后再切到 Swift 6;最后迁移 App、Widget、Extension 等上层 target。[WWDC24-10169]

  1. 它把 Actor 和 Sendable 放回了 Swift 并发的演进线里。Actor 保护共享可变状态来自 2021 年的 Swift Concurrency 系列,Sendable 和数据隔离检查在 2022 年被系统化解释,Swift 6 迁移则是 2024 年正式落地的工程路径。这样你看到的不是一组孤立建议,而是一条从语言模型到迁移实践的时间线。

  2. 它补上了一个非常 SwiftUI 的坑:

不要认为所有 SwiftUI 代码都只在主线程运行。View.body 和多数 UI 状态受 @MainActor 保护,但 Shape.path(in:)LayoutvisualEffect、部分几何回调可能通过 @Sendable 闭包在后台执行。[WWDC25-266]

这条信息很关键,因为很多 SwiftUI 迁移问题不是出在普通业务 actor,而是出在这些看起来“还在 UI 里”的闭包。没有 Skill 的回答主要讨论 UI 状态应该放在 @MainActor,这是对的;但它没有提醒你 SwiftUI 里还有一批会被后台调用的 @Sendable 场景。

这份回答最后落到了四场相关 Session:

如果把两份回答放在一起看,差别大概是这样:

维度不使用 Skill使用 WWDC Notes Skill
迁移步骤“逐模块启用严格检查”明确到 target 顺序、Complete Checking、Swift 5 到 Swift 6 的切换
概念关系Actor / Sendable / MainActor 都讲到了把 Actor、Sendable、Swift 6 迁移分别关联到对应 WWDC Session
SwiftUI 细节主要强调 UI 状态应在 @MainActor补充 Shape.path(in:)LayoutvisualEffect 等后台 @Sendable 场景
可追溯性没有来源,读者需要重新搜索每个关键判断后面都有 Session ID,可以继续读原文
适合场景快速得到通用迁移建议需要判断建议来源、技术演进和后续学习路径

使用 WWDC Notes

如果你只是想浏览,可以直接打开网站:wwdc.zhangferry.com。它更适合慢慢翻:看某一年 WWDC 的重点,或者沿着 SwiftUI、Developer Tools、Machine Learning 这类主题补课。

如果你已经在 Agent 里写代码,想让 Agent 带着 WWDC 上下文回答问题,可以安装 Skill:

npx skills@latest add zhangferry/wwdc --skill wwdc-notes

装好之后,可以直接问这类问题:

Swift 6 迁移怎么做?
NavigationStack 相比旧导航方案解决了什么问题?
SwiftUI 状态管理这几年怎么演变的?
Instruments 里怎么定位 SwiftUI 卡顿?

它不是 Apple 官方文档的替代品,最低系统版本、API 弃用状态、最新签名这些信息,还是应该回到 Apple Developer 文档确认。wwdc-notes 更适合做另一件事:帮你找到某个问题在 WWDC 里是怎么被讲清楚的,它从哪一年开始出现,后来又怎样演进。

WWDC26 马上开始,新的 Session 很快又会涌进来。每年看 WWDC 时,最容易丢掉的不是热情,而是上下文。希望下一次你想找一个 Apple 平台问题的来龙去脉时,不必从一堆收藏夹和搜索结果里重新开始。

项目仓库:zhangferry/wwdc

Share