# 老司机 iOS 周报 #370 | 2026-05-11

![ios-weekly](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/weekly-header/370.png?raw=true)
老司机 iOS 周报，只为你呈现有价值的信息。

你也可以为这个项目出一份力，如果发现有价值的信息、文章、工具等可以到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 里提给我们，我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 提出。

## 新闻

### 🐕 [DanceUI 开源](https://github.com/bytedance/DanceUI)

[@Kyle-Ye](https://github.com/Kyle-Ye): DanceUI 是 ByteDance 开源的类 SwiftUI 声明式 UI 框架，目标是在 SwiftUI 风格的 DSL 和更低系统版本兼容之间做一层工程化实现。项目提供了与 SwiftUI 对齐的基础能力，包括 `State`、`Binding`、`Environment`、`PreferenceKey`、`NavigationView`、`ScrollView` 等，同时通过 DanceUIRuntime、DanceUIGraph、OpenCombine 和 DanceUIObservation 相关模块支撑状态更新与渲染链路。整体预期是可以直接复用 SwiftUI 生态且最低支持 iOS 13。

## 文章

### 🐢 [Trust, Then Verify](https://www.racecondition.software/blog/ios-build-verify/)

[@Cooper Chen](https://github.com/cjlcooper)：以这篇文章《Trust, Then Verify》开头，你会很快意识到 : 真正拉开 AI 编程差距的，不是“写得快”，而是“能自证”。作者围绕 iOS 场景搭建了一套完整验证闭环 : 构建侧用 `xcodebuild + xcbeautify` 控噪并保留原始日志兜底，交互侧用 AXe 与 `simctl` 将启动、点击、读值、断言流程脚本化，让 Agent 从“像是对了”走向“可验证地对了”。更可贵的是文中沉淀出的工程方法论 : 入口宽松、断言严格；在最靠近原因的位置让失败可见；把经验性步骤持续机械化；通过使用驱动迁移而非一次性大审计。对 iOS 团队和所有实践 Agentic Coding 的开发者来说，这篇文章都值得细读。

### 🐕 [Anthropic 产品团队为何快过所有人](https://mp.weixin.qq.com/s/hjxIDZxMK4k1h_DUj-rN1w)

[@zhangferry](zhangferry.com)：Anthropic 的成功不能简单归功于 Claude Code、Co-Work 这类明星级产品，而是应该着重关注这类产品迭代背后的方法论。这篇文章的访谈嘉宾 Cat Woo 是 Claude Code 和 Co-work 的产品负责人，她系统性地分享了 Claude Code 团队的实战经验。他们的产品是 AI，他们的工作方式也因为 AI 被全面重塑；访谈涵盖了一个核心命题：当模型能力每隔几个月就跃升一次，产品经理的角色该如何重新定义？

### 🐎 [Why Your pbxproj Is Bloated (and How to Fix It)](https://codingwithvera.com/why-your-pbxproj-is-bloated-and-how-to-fix-it/)

[@david-clang](https://github.com/david-clang)：为什么 `.pbxproj` 容易臃肿和冲突？因为它记录了所有文件的 UUID，而使用 Groups 会让 Xcode 追踪每一个文件变动。文章介绍的解决办法很简单，用 Folders 代替 Groups，Xcode 只引用目录，不追踪单文件。另外，使用 XcodeGen 也能解决，它将 `.xcodeproj` 移出 Git，全靠本地按需生成，实现零冲突。

### 🐕 [Six Years Perfecting Maps on watchOS](https://david-smith.org/blog/2026/04/29/maps-on-watchos/)

[@Barney](https://github.com/BarneyZhaoooo)：David Smith 在这篇文章里复盘了 Pedometer++ 为 watchOS 打磨地图体验的六年历程，内容很适合拿来理解小屏设备上的产品设计为什么往往是工程能力、交互约束和视觉语言一起决定的。作者最初用服务端生成地图验证方向，随后因为离线能力、性能和交互需求，转向自研基于 SwiftUI 的地图渲染引擎；在界面层面，则经历了大量失败方案，最终收敛到“地图作为顶部主页面，指标信息层叠覆盖”的结构，并通过点击进入浏览模式来解决地图交互与 watchOS 手势冲突。文章后半段也很有意思：为了适配 watchOS 26 的 Liquid Glass，他甚至定制了新的底图与深色模式样式，并解释了为什么最终没有直接采用 MapKit。整体来看，这是一篇把平台限制、设计迭代和技术取舍讲得非常完整的实战复盘。

### 🐕 [Synchronization in Swift: Actors vs Queues vs Locks](https://livsycode.com/best-practices/actors-vs-queues-vs-locks-in-swift/)
[@Smallfly](https://github.com/iostalks)：这篇是 Swift 并发同步机制的深度指南，系统对比四类核心同步工具的设计哲学、适用场景与权衡取舍，为开发者构建线程安全代码提供全面决策框架。文章从语言级到硬件级逐层拆解各工具特性：Actors 适合异步环境下的缓存、服务类等状态组件，DispatchQueue 适配依赖执行上下文协调的场景，Locks/Mutexes 性能开销低适合同步小操作，Atomics 则适配计数器、状态标志等单操作场景。文中还给出各工具典型误用的修复方案，打破性能优先的误区，综合安全性、API 设计清晰度、认知负荷等维度给出选择指导，通过场景化分析与可运行示例，帮助开发者理解 Swift 并发同步本质，在复杂系统中做出合理技术选择。

## 工具

### 🐎 [Cupertino v1.0.0 "First Light"](https://aleahim.com/blog/cupertino-first-light/)

[@阿权](https://github.com/bqlin)：Cupertino MCP 发布 v1.0.0 "First Light" 版本。Cupertino 是一款本地 Apple 文档爬虫 MCP，使用 Swift 编写。用于解决 LLM 对 Apple API 回答幻觉问题，让模型推理时能获取精准、排名合理的 Apple 官方文档，本次版本实现了全流程（爬取、索引、排名、服务、分发）稳定，具体如下：

1. 搜索准确度大幅提升。优化语料库和权重策略；apple-docs 内部使用 BM25F 算法结合 AST 符 号索引，叠加多个搜索规则以精准命中目标；提升 SQL 性能。
2. 分发与部署简化。合并三个数据库为单包。
3. 架构与兼容性提升。数据库升级、MCP 协议升级、爬虫强化。

## 内推

重新开始更新「iOS 靠谱内推专题」，整理了最近明确在招人的岗位，供大家参考

具体信息请移步：https://www.yuque.com/iosalliance/article/bhutav 进行查看（如有招聘需求请联系 iTDriverr）

## 关注我们

我们是「老司机技术周报」，一个持续追求精品 iOS 内容的技术公众号，欢迎关注。

**关注有礼，关注【老司机技术周报】，回复「2024」，领取 2024 及往年内参**

![](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/qrcode_for_wechat.jpg?raw=true)

同时也支持了 RSS 订阅：https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。

## 说明

🚧 表示需某工具，🌟 表示编辑推荐

预计阅读时间：🐎 很快就能读完（1 - 10 mins）；🐕 中等 （10 - 20 mins）；🐢 慢（20+ mins）
