从 pbxproj 到 xcproj:Xcode 工程配置迎来 JSON 格式
苹果新发布了 27.2 beta。尽管 iPhone Duo 模拟器依然缺席,但新增的 `project.xcproj` 令人眼前一亮。它替代的是 `.xcodeproj` 包里的那份构建图 `project.pbxproj`,而不是整个工程包。它有哪些亮点,解决了什么问题,又有哪些事情没有改变,本文将对此进行探讨。
苹果新发布了 27.2 beta。尽管 iPhone Duo 模拟器依然缺席,但新增的 `project.xcproj` 令人眼前一亮。它替代的是 `.xcodeproj` 包里的那份构建图 `project.pbxproj`,而不是整个工程包。它有哪些亮点,解决了什么问题,又有哪些事情没有改变,本文将对此进行探讨。
尽管 iPhone Duo 的设计资料早在几个月前就已部分泄漏,而且苹果也是折叠机领域的后来者,但凭借软硬件整合能力,它所带来的交互变化还是给不少消费者带来了惊喜。
上月底,苹果发布了新的 Mac mini 和 Mac Studio。除了强悍的性能更新,明显上涨的价格同样给人带来了不小的震撼。内存与存储成本上涨无疑是本轮涨价的重要原因,但在 AI 时代,开发者对硬件的需求也在悄然发生变化。更大的内存、更高的存储容量,不断推高我们心目中“够用配置”的标准,最终也让实际购买价格变得更加夸张。
数据集一大,SwiftData 的列表就开始卡。这是这几年里我听到最多的性能抱怨。SwiftUI 确实有责任,但并非最主要的问题。真正花时间之后会发现,慢的不只是一开始加载时间长,巨大的内存占用同样会把性能拖垮。本文将聊聊在 SwiftData 中为什么会出现这些问题,以及该从哪里下手改善。
AI 工作流的核心其实很简单——人定好验收标准,AI 执行并且按标准验收。说得没错,但实现起来并不容易。“标准”如何而来?如何得到尊重?随着上下文的增长或换一个新上下文,标准难免偏移甚至会被篡改。我需要一种可被信任的 AI 使用方式,简单来说就是“可委托”
从问答、代码生成,到让 Agent 接手更完整的工作,不知不觉间,我已经使用 AI 好几年了。这些年里,变化的不只是模型能力,人与 AI 的协作方式也一直在变。我也在一边使用,一边调整自己的方法。我关心的已经不只是“AI 能不能完成这项工作”,而是另外几个问题:执行范围是否稳定,结果能否被信任,投入是否可以预期,以及什么时候需要人介入。
在 WWDC 2026 中,苹果工程师介绍了 SwiftUI 的一个新特性——ContentBuilder。从使用方式看,它似乎只是一个覆盖范围更广的 ViewBuilder。苹果同时宣称,这项调整能够显著改善类型检查性能。本文将解析 ContentBuilder 的本质,探索性能提升背后的奥妙。
SwiftUI 的 Text 有一项默认行为:当段落末行只剩一个孤词或孤字时,它会主动把上一行的完整词组一并推到末行,避免“落单”。这份体贴多数时候是对的,但代价是上一行可能留下一大片空白——在窄容器或中英混排的场景中,反而破坏了段落的均衡。本文将挖掘 SwiftUI 中一个早已存在、却始终未曾公开的 API —— `avoidsOrphans`,让开发者重新拿回这项控制权。
尽管 Liquid Glass 已经推出两年,但它带来的兼容性问题并未完全消失。SLIT_STUDIO 的开发者 Megabits 结合真实项目,总结了 UIKit 在适配过程中的多个典型坑点及应对方法。
在 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 文件,快速修复测试环境。