中文首页|肘子的 Swift 记事本|Fatbobman's Blog,分享与 Swift、SwiftUI、Core Data、Swift Data 有关的内容,也会涉及开发工具、AI 等其他内容。全部文章均为原创,转载需联系本人
访问网站Xcode 26.3 是苹果第一次通过 MCP 把自身能力开放给外部 Agent。其中不少能力此前借助 CLI 也能获得,但 Preview 渲染是头一回出现。到了 Xcode 27,苹果又提供了 headless MCP server,调用起来更加顺手,于是我把 Preview 渲染大量嵌进了自己的 AI 工作流。一路用下来,踩了一些坑,也多了一些感悟和期待。
阅读全文包含 iPhone Duo 模拟器的 Xcode 27.1 beta 于 9 月 18 日发布,距离 10 月 23 日正式发售仅五周。颇为微妙的是,彼时不含 Duo 支持的 Xcode 27.2 beta 已先行推出——想适配苹果最新的设备,反而要使用版本号更低的 Xcode。
阅读全文在 第一次看到 `ArrangementView` 的 API 时,我有一种说不出的别扭感。直到在 Xcode 27.1 beta 中实际使用后,这种感觉才逐渐清晰。查阅更多的苹果资料,再把它放回 iPhone Duo 的使用场景,我发现这份别扭其实来自两个方面:一部分源于我对它的定位不够清楚,理解之后便释然了;另一部分则来自 API 本身,即便想明白了,依然存在。
阅读全文上周,React Native 核心开发者 Krzysztof Magiera 的一条推文在苹果开发生态中引发热烈讨论。他认为原因在于 SwiftUI 没有使用 Core Animation 的 render-server animation,而是在应用进程中推进动画,因此对 SwiftUI 是否足够“原生”提出了质疑
阅读全文苹果新发布了 27.2 beta。尽管 iPhone Duo 模拟器依然缺席,但新增的 `project.xcproj` 令人眼前一亮。它替代的是 `.xcodeproj` 包里的那份构建图 `project.pbxproj`,而不是整个工程包。它有哪些亮点,解决了什么问题,又有哪些事情没有改变,本文将对此进行探讨。
阅读全文尽管 iPhone Duo 的设计资料早在几个月前就已部分泄漏,而且苹果也是折叠机领域的后来者,但凭借软硬件整合能力,它所带来的交互变化还是给不少消费者带来了惊喜。
阅读全文上月底,苹果发布了新的 Mac mini 和 Mac Studio。除了强悍的性能更新,明显上涨的价格同样给人带来了不小的震撼。内存与存储成本上涨无疑是本轮涨价的重要原因,但在 AI 时代,开发者对硬件的需求也在悄然发生变化。更大的内存、更高的存储容量,不断推高我们心目中“够用配置”的标准,最终也让实际购买价格变得更加夸张。
阅读全文数据集一大,SwiftData 的列表就开始卡。这是这几年里我听到最多的性能抱怨。SwiftUI 确实有责任,但并非最主要的问题。真正花时间之后会发现,慢的不只是一开始加载时间长,巨大的内存占用同样会把性能拖垮。本文将聊聊在 SwiftData 中为什么会出现这些问题,以及该从哪里下手改善。
阅读全文上个周末,我在北京参加了由苹果举办的 App 孵化器活动,本次的主题主要围绕 AI 时代的应用开发、运营和商业模式展开。与会者大多是 IT 公司的管理者和应用开发者,整个活动期间,大家对 AI 的热情都很高,也纷纷讨论各自对于 AI 的理解和应用技巧,我从中收获不少。
阅读全文AI 工作流的核心其实很简单——人定好验收标准,AI 执行并且按标准验收。说得没错,但实现起来并不容易。“标准”如何而来?如何得到尊重?随着上下文的增长或换一个新上下文,标准难免偏移甚至会被篡改。我需要一种可被信任的 AI 使用方式,简单来说就是“可委托”
阅读全文从问答、代码生成,到让 Agent 接手更完整的工作,不知不觉间,我已经使用 AI 好几年了。这些年里,变化的不只是模型能力,人与 AI 的协作方式也一直在变。我也在一边使用,一边调整自己的方法。我关心的已经不只是“AI 能不能完成这项工作”,而是另外几个问题:执行范围是否稳定,结果能否被信任,投入是否可以预期,以及什么时候需要人介入。
阅读全文在 WWDC 2026 中,苹果工程师介绍了 SwiftUI 的一个新特性——ContentBuilder。从使用方式看,它似乎只是一个覆盖范围更广的 ViewBuilder。苹果同时宣称,这项调整能够显著改善类型检查性能。本文将解析 ContentBuilder 的本质,探索性能提升背后的奥妙。
阅读全文SwiftUI 的 Text 有一项默认行为:当段落末行只剩一个孤词或孤字时,它会主动把上一行的完整词组一并推到末行,避免“落单”。这份体贴多数时候是对的,但代价是上一行可能留下一大片空白——在窄容器或中英混排的场景中,反而破坏了段落的均衡。本文将挖掘 SwiftUI 中一个早已存在、却始终未曾公开的 API —— `avoidsOrphans`,让开发者重新拿回这项控制权。
阅读全文尽管 Liquid Glass 已经推出两年,但它带来的兼容性问题并未完全消失。SLIT_STUDIO 的开发者 Megabits 结合真实项目,总结了 UIKit 在适配过程中的多个典型坑点及应对方法。
阅读全文易用的动画一直是 SwiftUI 的主要特色之一。但声明式框架的特性是一把双刃剑:动画一旦出现异常,排查往往比命令式框架更棘手。本文记录了过去两周里,我在开发中遇到的两个与 SwiftUI 动画有关的 Bug,以及对应的排查过程。
阅读全文在 init 中给 @State 赋值后,为什么父视图更新数据时子视图无反应?本文解析 SwiftUI 状态管理的生命周期机制与正确的数据传递方式。
阅读全文使用 Partytown 优化性能后,GA4 和 GTM 事件无法上报?详解如何在 Astro 中配置 forward 属性,让主线程的 gtag 和 dataLayer.push 正常通讯。
阅读全文Swift 宏编译太慢?在 Swift 6.1+ 中启用 Swift-Syntax 预构建 (Prebuilts),一行命令显著减少 Xcode 构建时间,提升开发效率。
阅读全文如何在 Swift Package 的多个 Target 间共享代码却不暴露给外部?详解 package 访问修饰符,填补 internal 与 public 间的权限空白,提升模块封装性。
阅读全文在 VSCode 或 Cursor 中开发 Swift Monorepo 项目时,SwiftLint 无法读取根目录配置?通过设置 configSearchPaths 和明确包含路径,轻松实现多包共享 Lint 规则。
阅读全文在 VSCode/Cursor 中运行 Core Data 单元测试报错?这是因为 xcdatamodeld 未被自动编译。学习配置 Xcode 工具链并使用 xcrun momc 手动生成 momd 文件,快速修复测试环境。
阅读全文