
在 weekly.fatbobman.com 订阅本周报的电子邮件版本。访问我的博客 肘子的 Swift 记事本 查看更多的文章。加入 Discord 社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。
WWDC 2025:回归务实的一年
WWDC 2025 已经落下帷幕。在过去一周中,苹果推出了众多全新框架和 API,并展示了在未来几年将产生深远影响的 Liquid Glass 视觉风格。相信不少开发者在看到一些期盼已久的功能或 API 只能在最新系统版本中使用时,难免萌生出将项目最低支持版本直接提升至 26 的冲动。但冷静下来后,大多数开发者仍将不得不接受"数年内无法使用这些新特性"的现实。
实际上,近几年苹果在向后兼容性方面已取得显著进步。今年 SwiftData 的所有功能修复均可向下兼容至 iOS 17,而 UIKit 集成 Observation 的支持则延伸到了 iOS 18。然而,这距离开发者的全面期待显然仍有不小的差距。
相比往年,今年 SwiftUI 的更新数量并不算多,但 Liquid Glass 风格带来的突破性变化意味着开发者需要投入更多精力进行视觉适配,认真思考如何让项目同时兼容两种差异较大的 UI 风格。好在苹果提供了一年的缓冲期------在 Xcode 26 中,开发者仍可选择关闭 Liquid Glass。
尽管与主流 AI 开发工具在智能化程度上仍存差距,但 Xcode 终于首次加入了基于云端大模型的 AI 助手功能。其中一些细节设计(例如在编译错误提示中直接集成 AI 辅助)体现了苹果将 AI 深度融入 Xcode 的决心与能力。然而,主流 AI 编程工具迭代频率极高,不断紧随大模型能力的进步。考虑到 Xcode 每年只有有限的几个版本更新窗口,到 WWDC 2026 时,Xcode 与其他 AI 工具的差距究竟会缩小还是进一步拉大,仍值得持续关注。
整体而言,WWDC 2025 相比去年显得更加务实,推出的新功能和 API 大多都能让开发者在第一时间上手体验。此外,苹果还一次性地发布了全部的 Session 视频,新 API 的文档质量和可读性也较往年有明显提升。仅凭这些改进,我就愿意给今年的大会打出至少 8.5/10 的分数。
你呢?你对今年的 WWDC 2025 满意吗?
在上期的周报(第088期)中,我整理汇总了数十篇来自开发者社区的精彩解读文章、实用工具和关键注意事项,覆盖了 WWDC 2025 的多个重要内容。如果你希望深入了解本次大会推出的新功能,相信这些精选内容会为你提供极有价值的参考。
近期推荐
ExtensionKit 再介绍 (A Introduction to ExtensionKit)
ExtensionKit 是 Apple 推出的一套现代化扩展机制框架,与传统的 App Extension(如 Share Extension、Siri Extension)相比,更通用、更灵活、更强大 ,适用于构建通用插件系统或模块化架构。该框架最早发布于 macOS Ventura(13),如今终于在 iOS 26 中上线,并实现了与 macOS 等同的功能支持。在本文中,Matt Massicotte 对 ExtensionKit 的能力与架构进行了介绍,并分享了他在 Chime 项目中构建扩展系统的实践经验,同时也展望了该技术在更广泛领域的潜力。
SwiftData vs SQL Query Builder
StructuredQueries 是由 Point-Free 推出的一套用于构建 SQL 查询的 Swift 库,常与其推出的另一个库 SharingGRDB 配合使用。它不试图掩盖 SQL 的复杂性,而是在保留原生 SQL 表达力的同时,引入 Swift 类型系统的安全性与组合性,从而避免拼写错误、类型错误等常见运行时陷阱。本文通过构建一个真实的多条件、可排序的 Reminder 查询,展示了 StructuredQueries 在表达复杂逻辑时的简洁性与清晰性。
SharingGRDB 与 SwiftData 无法简单评判优劣,它们分别代表了不同的数据建模理念与编程风格。每种工具都有其适用场景,唯有理解其设计哲学,并结合项目需求与团队经验,才能做出最恰当的选择。
使用 ShareLink 在 SwiftUI 中分享内容 (Sharing Content in SwiftUI with ShareLink)
ShareLink
是 SwiftUI 中对系统分享面板(UIActivityViewController
)的原生封装,允许开发者更优雅地分享文本、链接,甚至自定义类型。Gabriel Theodoropoulos 在本文中系统介绍了 ShareLink 的基本用法、外观定制、如何分享自定义类型(通过 Transferable
协议)以及使用中的注意事项。
Container 使用指南 (How to Use Apple Container, the Open-Source Docker Alternative in Swift)
Apple 在 WWDC 2025 期间悄然发布了一个开源项目 ------ Container
,这是一个用 Swift 编写、专为 Apple Silicon 优化的容器运行时工具,旨在成为 Docker 在 macOS 上的轻量替代方案。在这篇文章中,Mark Ponomarev 对 Container 的架构、特性与使用方式做了详尽介绍,并通过一个完整的示例演示了如何构建、运行并发布一个 Python Web Server 容器。
🪜 SwiftUI: Liquid Glass. From Basic to (A Little) Advance
苹果在 WWDC 2025 中引入了全新的 Liquid Glass 动态材质,这不仅是一次视觉语言的更新,也为开发者和用户带来了全新的交互体验。Itsuki 在本文中深入探索了如何在 SwiftUI 中应用 Liquid Glass,包括基础用法、视图间的融合与变形动画、分组控制与动画路径调整等进阶技巧,并针对 Beta 版本中的已知 Bug 提供了实用建议与避坑指南。
🪜 swift_dynamicCast 详解 (swift_dynamicCast in Swift's Runtime)
swift_dynamicCast
是 Swift 运行时中用于实现动态类型检查与转换 的核心函数。凡是编译器无法在编译期确定安全性的类型转换(如 as?
、as!
、is
等),Swift 都会在生成的代码中插入对该函数的调用。Xiangyu Sun 对 swift_dynamicCast
的运行时行为进行了深入解析。从语言层的语法触发点出发,逐层揭示了 Swift 编译器与运行时如何协同处理动态转换,包括类型元数据比较、协议一致性查找、Objective-C 桥接机制等。同时,文章还系统讲解了各种典型转换路径(类之间的转换、值类型、协议、Optional、桥接等)背后的实现细节与性能影响。
工具
llm.codes - Make Apple Docs AI-Readable
苹果的开发文档对 AI 并不友好,一个关键原因在于其大量依赖 JavaScript 渲染,导致许多模型无法正确解析页面内容。为了解决这个问题,Peter Steinberger 创建了 llm.codes ------ 一个将这类文档转换为 Markdown 格式的免费服务。它默认支持 Apple Developer Docs,同时兼容 AWS、Tailwind、PyTorch 等超过 69 个技术网站。
llm.codes 抓取后的文档不仅结构清晰,还能直接作为上下文输入给 AI 使用,极大提升了代码生成的准确性。
我使用 llm.codes 抓取今年 Apple Foundation Models 的官方文档,最终生成的 Markdown 文件大小为 600KB。
Dragula - 为 SwiftUI 带来流畅的拖拽重排体验
如果你正在寻找一个既现代又灵活的 SwiftUI 拖放解决方案,由 Mustafa Yusuf 创建的 Dragula 很值得一试。它支持列表和分区列表的拖拽重排,底层基于 UIKit 实现,交互精细顺滑,同时提供丰富的自定义能力。
- 🔀 支持在列表中重排或跨区块移动
- ↔️ 支持多选;水平、垂直滚动方向
- 🍞 支持自定义拖拽预览、圆角和触觉反馈
- 🧱 同时适用于平铺与分区结构
Swift Binary Parsing:构建安全高效的二进制解析器
Swift Binary Parsing 是 Apple 开源的二进制解析库,专为 Swift 语言设计,兼顾性能与类型安全,旨在避免整数溢出等常见的未定义行为。它通过 ParserSpan
与 ParserRange
提供高效的字节序列处理能力,并支持对整数、字符串、枚举、自定义类型等的安全解析,特别适用于需要直接处理底层二进制格式的 Swift 应用。
需要注意的是,该库并非自动生成解析器的工具,而是为熟悉目标格式的开发者提供一套安全、规范的解析基础设施。你仍需深入理解所处理二进制格式的具体规范,才能编写出可靠的解析逻辑。
往期内容
- WWDC 2025 开发者特辑 - #088
- Swift 新设计、新案例、新体验 - #087
- Arc、Dia、TCA 与 SwiftUI - #086
- 注册 WWDC 2025 的 Group Labs 了没? - #085
THANK YOU
如果你觉得这份周报或者我的文章对你有所帮助,欢迎 点赞 并将其 转发 给更多的朋友。
在 weekly.fatbobman.com 订阅本周报的电子邮件版本。访问我的博客 肘子的 Swift 记事本 查看更多的文章。加入 Discord 社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。