
在 weekly.fatbobman.com 订阅本周报的电子邮件版本。访问我的博客 肘子的 Swift 记事本 查看更多的文章。加入 Discord 社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。
变暗的 Liquid Glass 和消失的 Apple Intelligence
安装 iOS 26 beta 3 后,用户会很快发现 Liquid Glass 的效果不再像前两个测试版那样通透。对此,有两种截然不同的声音:一些人认为这意味着苹果在 WWDC 2025 上展示的核心设计理念正面临挑战;也有人认为,这体现了苹果对用户体验数据的重视与快速调整的能力。无论哪种观点,这种在短时间内对 UI 的显著调整再次证明了开发者测试版的价值------让耐受力更高的专业用户率先体验并反馈,对于服务数十亿用户的苹果来说,是至关重要且不可或缺的环节。
在我的实际使用中,能明显感受到 beta 3 相较 beta 2 在交互上的流畅性提升。这当然有赖于底层代码的持续优化,而 Liquid Glass 效果的弱化或许也是为了进一步平衡性能与能耗。毕竟,这类炫目的视觉效果往往以算力和电量为代价。如何既让用户感受到新 UI 的独特魅力,又不影响内容可读性,同时兼顾设备发热和续航表现,对任何公司来说都是一大挑战。
与此同时,上周苹果悄然撤下了中文官网上与 Apple Intelligence 相关的介绍。自 WWDC 2024 推出以来,无论在技术表现还是功能覆盖范围上,Apple Intelligence 都未完全达到外界的期待。但放眼整个消费电子行业,会发现真正能在智能终端中有效整合 AI 功能并带来跨时代体验的产品依然罕见。当前,智能设备中的 AI 更多还是分布在不同场景的"亮点"功能------无论是图像智能擦除、文本润色还是聊天助理,都与苹果在 WWDC 2024 勾勒的美好愿景存在一定差距。
一个真正能让用户在日常中无缝体验 AI 便利的设备,需要具备多个核心要素:强大且被广泛应用的端侧 AI 框架、高效节能的 AI 芯片、快速响应且成本可控的云端服务,以及一个充分理解并善用这些能力的庞大开发者生态。缺少任何一环,这一愿景都难以落地。
或许,当 AI 不再是宣传焦点时,我们才会在不经意间发现,它早已融入每个人的工作和生活之中。
原创
在 SwiftUI 中,如何判断 Text 是否被截断?
Text
在 SwiftUI 中大量被使用,与 UIKit/AppKit 中对应的组件相比,Text
无需配置,开箱即用,但这也意味着开发者丧失了更多对其的控制能力。在本文中,我们将通过一个实际案例来展示,如何用 SwiftUI 的方式来完成一些看似"不可能"的任务:在一堆给定的视图中,找出第一个文本未被截断的,并以此作为需求尺寸。
近期推荐
Animatable 宏 (Introducing Animatable Macro in SwiftUI)
自 Swift Macro 诞生以来,苹果一直是该功能的坚定支持者和积极实践者。在 WWDC 2025 中,苹果又为 SwiftUI 开发者带来了 @Animatable
宏,进一步简化了复杂 animatableData
的实现过程。过去,为自定义视图添加平滑的数值动画需要手动遵循 Animatable
协议并实现相关方法,现在只需一个简单的宏标注即可搞定。Majid Jabrayilov 在本文中详细演示了该宏的使用方法。如果你想更深入了解 Animatable
协议的工作原理,建议一并阅读 Majid 的另一篇文章 The magic of Animatable values in SwiftUI。
CI/CD 实战指南系列
CI/CD 已被成熟的开发团队广泛采用,但由于缺乏系统的构建知识,以及对投入产出比的不确定性,让很多小团队和个人开发者望而却步。在这个系列文章中(共四篇),ZhgChgLi 以 App(iOS)开发团队为例,完整展示了从 0 到 1 构建适合中小开发团队的 CI/CD 工作流程。系列涵盖了理论基础、工具选择、GitHub Actions 实战、完整的 iOS CI/CD 流程,以及如何构建跨团队协作的打包平台。这个系列的最大价值在于提供了一套完整、实用、成本可控的 CI/CD 解决方案,不仅有理论指导,更有详细的实现步骤和实际可运行的代码示例。
对 Xcode 项目安全的重命名 (Safely Renaming Your Xcode Project)
相信很多开发者在项目初期并没有对项目的命名有深入的思考,随着项目发展,需要更新 Xcode 项目名称时才会发现这并非简单的修改个目录名那么简单。Pasquale Vittoriosi 在本文中详细提供了一套拥有 8 个步骤的项目改名流程,从而避免因不当操作可能导致文件引用、构建设置、Bundle Identifier 等出现不一致,造成项目混乱。
Swift and C++ Interoperability in Practice
让 Swift 能够更好地与其他语言互操作一直是 Swift 社区十分看重的方向。自 Swift 5.9 引入的 C++ 互操作功能使开发者可以在保持 Swift 开发体验的同时,充分利用成熟的 C++ 高性能库。Artur Gruchała 通过一个实际的 ATM 项目完整展示了 Swift 与 C++ 之间的互操作流程,包括构建配置、Xcode 集成和内存管理等技术细节。Artur 表示,在尝试过诸多跨平台方案后,依然认为原生代码是最佳选择,而 Swift-C++ 互操作为这一理念提供了强有力的技术支撑。
揭秘 SwiftUI Spacer (Everything You Should Know About Spacer)
苹果在 SwiftUI 中大量隐藏了底层的实现细节,比如,一个简单的 Spacer
便会在不同的场景中对应四种不同的实现。OpenSwiftUI 项目的主要开发者 Kyle Ye 最近在实现 VStack/HStack 布局的过程中,发现了其中的奥秘,并通过本文揭示了 SwiftUI 布局系统中 Spacer
的内部实现原理。其中 _TextBaselineRelativeSpacer
尤为值得注意,因为它在处理间隔时会将文本基线考量在内,以提供更精确的排版对齐。或许这类文章分享的知识并不会马上体现在你的项目中,但在不断增强对 SwiftUI 底层机制的了解后,你会发现不知不觉间,可以更自如地应对各种复杂的布局场景,将 SwiftUI 使用得得心应手。
如何在 macOS 上用 SwiftUI 展示独立窗口 (Presenting Secondary Windows on macOS with SwiftUI)
在过去的两年中,SwiftUI 大幅增强了其在 macOS 上的表现,添加了丰富的专属 API。在本文中,Gabriel Theodoropoulos 着重介绍了如何使用 Window scene(而非 WindowGroup)在 macOS 上创建和管理辅助窗口。文章详细讲解了窗口的创建、配置以及程序化的打开和关闭方法。当我看到文章提到的大量以 window
开头的视图修饰器,才明显地感受到,不知不觉间,SwiftUI 已经在 macOS 上成长了很多。
工具
Reaper - 帮你找到死代码
在生成式 AI 加速代码开发的同时,代码质量和维护性问题也日益凸显。与传统静态分析工具不同,Reaper 通过运行时分析 监控用户实际使用情况来发现从未被触及的代码。它支持所有 Objective-C 类、大部分非泛型 Swift 类以及部分 Swift 结构体和枚举。通过对比所有可检测类型与实际使用类型的差集,开发者可以安全地识别并删除无用代码,从而减少安全漏洞、提升构建速度并改善代码可维护性。这个曾帮助 Duolingo 等公司优化代码库的工具现已由 Emerge Tools 开源。
Shaft - 基于 Swift 的跨平台 UI 框架
尽管 Swift 语言本身的跨平台工作一直在持续进展中,但由于缺少合适的原生跨平台 UI 框架,让不少开发者仍难以真正构建 Swift 跨平台桌面产品。Shaft 结合了 Flutter 的自渲染方法和 Swift 的原生性能,注重简洁性和可定制性,目前已支持 macOS、Linux 和 Windows 平台。通过移植经过实战验证的 Flutter 代码库到 Swift,它在保持高性能和可靠性的同时大大加速了开发进程,为希望获得类似 Flutter 开发体验但需要更好性能和更直接系统访问能力的开发者提供了新选择。
Everything But the Code
在您读到本期周报时,Paul Hudson 的新书《Everything but the Code》将正好上市。与 Paul 之前的许多技术书籍不同,本书专注于 App Store 成功策略而非编程技术。Paul 指出,在 App Store 过百万的应用中,只有约 1% 被认为"财务成功"(收入超过 10 万美元);大多数失败不是因为代码问题,而是在想法、设计、营销等方面的不足。开发者往往过于关注技术细节,忽略了商业成功的其他关键要素。书中汇集了众多苹果设计奖获奖团队和行业专家的实战经验,旨在成为读者的"联合创始人",帮助他们像设计师、营销人员和 CEO 一样思考。正如 Paul 所说,区别在于"发布"和"成功"之间的差距。
Swift 异步和并发 2.0
相信 王巍 撰写的《Swift 异步和并发》是很多中文开发者在 Swift 5.5 推出新的并发模型后最先接触到的相关书籍。几天前,该书发布了重要的 2.0 版本更新,全面涵盖了 Swift 6 中新增的并发关键字和写法,新增了 Sendable 独立章节,并提供了 Swift 6 迁移指南和速查清单。这次更新确保所有内容都与最新版本保持同步,无论是初次接触 Swift 并发编程还是希望升级到 Swift 6 并发模式的开发者,都能获得全面的指导。如果你已经购买过之前的版本,可以直接下载新版本。
往期内容
THANK YOU
如果你觉得这份周报或者我的文章对你有所帮助,欢迎 点赞 并将其 转发 给更多的朋友。
在 weekly.fatbobman.com 订阅本周报的电子邮件版本。访问我的博客 肘子的 Swift 记事本 查看更多的文章。加入 Discord 社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。