Fatbobman's Swift Weekly #093
A Dimmer Liquid Glass and the Disappearance of Apple Intelligence

A Dimmer Liquid Glass and the Disappearance of Apple Intelligence
After installing iOS 26 beta 3, users quickly noticed that the Liquid Glass effect is no longer as translucent as in the previous two beta releases. This change has sparked two opposing perspectives: some see it as a sign that Apple’s flagship design concept from WWDC 2025 is facing challenges, while others view it as evidence of Apple’s responsiveness to user experience data and its ability to iterate quickly. Either way, such a significant UI adjustment within a short time underscores the importance of developer betas—allowing technically savvy users with higher tolerance for change to provide feedback is essential for a company serving billions of people.
In my own experience, beta 3 feels noticeably smoother in interactions compared to beta 2. This improvement can certainly be attributed to ongoing code optimizations, but it’s also possible that the subdued Liquid Glass effect plays a role in balancing performance and energy efficiency. After all, these striking visual effects often come at the cost of computational power and battery life. Striking the right balance between delivering a distinctive UI, maintaining content readability, and managing heat and battery drain is a significant challenge for any company.
Meanwhile, Apple quietly removed Apple Intelligence-related content from its Chinese website last week. Since its introduction at WWDC 2024, Apple Intelligence has struggled to fully meet user expectations—both in terms of technical performance and regional availability. Yet, if we look across the broader consumer electronics industry, it’s clear that there are still very few products that successfully integrate AI into smart devices to deliver a truly transformative experience. For now, AI in devices remains scattered across various “highlight” features—whether it’s image erasure, text refinement, or chat assistants—all of which still fall short of the seamless vision Apple showcased at WWDC 2024.
A device that truly allows users to experience the convenience of the AI era seamlessly in daily life requires several key elements: a powerful and widely adopted on-device AI framework, energy-efficient AI chips, fast and cost-effective cloud services, and a large developer ecosystem capable of leveraging these capabilities. Without any of these elements, this vision remains elusive.
Perhaps when AI is no longer a marketing focal point, we'll discover—almost imperceptibly—that it has already become seamlessly integrated into our work and daily lives.
Previous Issue|Newsletter Archive
If you appreciate my work and want to promote your product to the Swift and iOS developer community, sponsoring my blog & newsletter could be an excellent opportunity for you.
Original
How to Detect Text Truncation in SwiftUI?
Text
is heavily used in SwiftUI. Compared to its counterparts in UIKit/AppKit, Text
requires no configuration and works out of the box, but this also means developers lose more control over it. In this article, I will demonstrate through a real-world case study how to accomplish seemingly “impossible” tasks with SwiftUI’s approach: finding the first view among a given set where text is not truncated, and using it as the required size.
Recent Recommendations
Introducing Animatable Macro in SwiftUI
Since the introduction of Swift Macros, Apple has been a strong supporter and active practitioner of this feature. At WWDC 2025, Apple brought SwiftUI developers the @Animatable
macro, further simplifying the implementation of complex animatableData
. In the past, adding smooth numerical animations to custom views required manually conforming to the Animatable
protocol and implementing related methods. Now, it can be accomplished with just a simple macro annotation. Majid Jabrayilov demonstrates the usage of this macro in detail in this article. If you want to understand the working principles of the Animatable
protocol more deeply, I recommend reading Majid's other article The magic of Animatable values in SwiftUI as well.
CI/CD Practical Guide
CI/CD has been widely adopted by mature development teams, but due to the lack of systematic construction knowledge and uncertainty about the cost-benefit ratio, many small teams and individual developers are hesitant to adopt it. In this article series (four parts), ZhgChgLi uses an App (iOS) development team as an example to demonstrate the complete process of building a CI/CD workflow suitable for small and medium-sized development teams from scratch. The series covers theoretical foundations, tool selection, GitHub Actions implementation, complete iOS CI/CD workflows, and how to build cross-team collaborative packaging platforms. The greatest value of this series lies in providing a complete, practical, and cost-controllable CI/CD solution, offering not only theoretical guidance but also detailed implementation steps and actual runnable code examples.
Safely Renaming Your Xcode Project
Many developers don't give much thought to project naming in the early stages of development. As projects evolve, they discover that updating an Xcode project name isn't as simple as just changing a directory name. Pasquale Vittoriosi provides a detailed 8-step project renaming workflow in this article to avoid potential inconsistencies in file references, build settings, Bundle Identifiers, and other elements that could cause project chaos due to improper operations.
Swift and C++ Interoperability in Practice
Enabling Swift to better interoperate with other languages has always been a priority for the Swift community. The C++ interoperability feature introduced in Swift 5.9 allows developers to fully utilize mature C++ high-performance libraries while maintaining the Swift development experience. Artur Gruchała demonstrates the complete Swift-C++ interoperability workflow through a practical ATM project, including build configuration, Xcode integration, and memory management technical details. Artur states that after trying numerous cross-platform solutions, he still believes native code is the best choice, and Swift-C++ interoperability provides strong technical support for this philosophy.
Everything You Should Know About Spacer
Apple has extensively hidden implementation details in SwiftUI. For example, a simple Spacer
corresponds to four different implementations in different scenarios. Kyle Ye, the main developer of the OpenSwiftUI project, recently discovered these secrets while implementing VStack/HStack layouts and reveals the internal implementation principles of Spacer
in SwiftUI's layout system through this article. _TextBaselineRelativeSpacer
is particularly noteworthy as it considers text baselines when handling spacing to provide more precise typographic alignment. While the knowledge shared in such articles may not immediately manifest in your projects, as you continuously enhance your understanding of SwiftUI's underlying mechanisms, you'll find that you can unconsciously handle various complex layout scenarios more naturally and use SwiftUI with greater proficiency.
Presenting Secondary Windows on macOS with SwiftUI
Over the past two years, SwiftUI has significantly enhanced its performance on macOS, adding a wealth of platform-specific APIs. In this article, Gabriel Theodoropoulos focuses on how to use Window scenes (rather than WindowGroup) to create and manage secondary windows on macOS. The article covers in detail the creation, configuration, and programmatic opening and closing of windows. When I saw the numerous view modifiers beginning with window
mentioned in the article, I clearly felt that SwiftUI has grown tremendously on macOS without us realizing it.
Tools
Reaper - Finding Dead Code
While generative AI accelerates code development, code quality and maintainability issues are becoming increasingly prominent. Unlike traditional static analysis tools, Reaper uses runtime analysis to monitor actual user behavior and discover code that is never touched. It supports all Objective-C classes, most non-generic Swift classes, and some Swift structs and enums. By comparing the difference between all detectable types and actually used types, developers can safely identify and remove unused code, thereby reducing security vulnerabilities, improving build speed, and enhancing code maintainability. This tool, which once helped companies like Duolingo optimize their codebases, has now been open-sourced by Emerge Tools.
Shaft - Swift-based Cross-platform UI Framework
Although Swift's cross-platform work continues to progress, the lack of suitable native cross-platform UI frameworks still makes it difficult for many developers to truly build Swift cross-platform desktop products. Shaft combines Flutter's self-rendering approach with Swift's native performance, focusing on simplicity and customizability, and currently supports macOS, Linux, and Windows platforms. By porting battle-tested Flutter codebase to Swift, it significantly accelerates development while maintaining high performance and reliability, providing a new choice for developers who want Flutter-like development experience but need better performance and more direct system access capabilities.
Everything But the Code
By the time you read this newsletter, Paul Hudson's new book "Everything but the Code" will have just been released. Unlike many of Paul's previous technical books, this book focuses on App Store success strategies rather than programming techniques. Paul points out that among the millions of apps on the App Store, only about 1% are considered "financially successful" (earning over $100,000); most failures are not due to code issues, but rather shortcomings in ideas, design, marketing, and other aspects. Developers often focus too much on technical details while ignoring other key elements of commercial success. The book compiles practical experiences from numerous Apple Design Award-winning teams and industry experts, aiming to be readers' "co-founder," helping them think like designers, marketers, and CEOs. As Paul says, the difference lies in the gap between "shipping" and "succeeding."
变暗的 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 不再是宣传焦点时,我们才会在不经意间发现,它早已融入每个人的工作和生活之中。
如果您发现这份周报或我的博客对您有所帮助,可以考虑通过 爱发电,Buy Me a Coffee 支持我的创作。
原创
在 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 并发模式的开发者,都能获得全面的指导。如果你已经购买过之前的版本,可以直接下载新版本。
It's really great that company is reading the posts, checking the forums and reviewing the Feedback assistant. Maybe we will get a Swift Concurrency that will work more straightforward?)