Fatbobman's Swift Weekly #093
A Dimmer Liquid Glass and the Disappearance of Apple IntelligenceAfter 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. OriginalHow to Detect Text Truncation in SwiftUI?
Recent RecommendationsIntroducing Animatable Macro in SwiftUISince 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 CI/CD Practical GuideCI/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 ProjectMany 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 PracticeEnabling 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 SpacerApple has extensively hidden implementation details in SwiftUI. For example, a simple Presenting Secondary Windows on macOS with SwiftUIOver 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 ToolsReaper - Finding Dead CodeWhile 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 FrameworkAlthough 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 CodeBy 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 是否被截断?
近期推荐Animatable 宏 (Introducing Animatable Macro in SwiftUI)自 Swift Macro 诞生以来,苹果一直是该功能的坚定支持者和积极实践者。在 WWDC 2025 中,苹果又为 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 中大量隐藏了底层的实现细节,比如,一个简单的 如何在 macOS 上用 SwiftUI 展示独立窗口 (Presenting Secondary Windows on macOS with SwiftUI)在过去的两年中,SwiftUI 大幅增强了其在 macOS 上的表现,添加了丰富的专属 API。在本文中,Gabriel Theodoropoulos 着重介绍了如何使用 Window scene(而非 WindowGroup)在 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 并发模式的开发者,都能获得全面的指导。如果你已经购买过之前的版本,可以直接下载新版本。 Welcome to my blog Fatbobman's Swift Blog( 肘子的Swift记事本 ) |