普通视图

发现新文章,点击刷新页面。
今天 — 2025年12月1日iOS 老司机

老司机 iOS 周报 #359 | 2025-12-01

作者 ChengzhiHuang
2025年11月30日 23:01

ios-weekly
老司机 iOS 周报,只为你呈现有价值的信息。

你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。

文章

🌟 🐕 从「写代码」到「验代码」:AI 搭档写走 3 年,我踩出来的协作路线图

@JonyFang: 这篇文章给我的最大启发是:AI Coding 的价值,不在于让你更快写代码,而在于让你反思、重构「整个工程流程/协作方式」。

把 AI 当成一台「超级写代码机」很容易:但如果你这样想,就容易陷入“生成–调试–纠错–折腾–没效率”的恶性循环。相反,把 AI 当成「半自动化助理 + 智能实习生」,并在团队层面投入标准化 + 自动化 + 质量流程建设 -- 才是值得的、可持续的生产力提升路径。

🐕 Open source case study: Listening to our users

@Barney:文章强调了开源软件相较于 Apple 官方框架的核心优势:与用户的紧密互动。通过 SQLiteData 库的三个案例,用户驱动的功能定制、社区贡献的工具改进、快速修复的共享 bug,充分说明了活跃维护者的价值所在。开源库能在数小时到数周内响应用户需求,无需等待 WWDC 或新版本发布,这种敏捷迭代的开发模式,正是第三方库相比官方框架最值得信赖的地方。

🐎 A deep dive into notifications and messages on iOS 26

@极速男孩:这篇文章分析了 iOS 26 的新消息(Message)API。它作为传统 NotificationCenter 的替代品,提供了编译时的类型安全和并发安全保证,解决了旧 API(如闭包式)易出错的问题。

文章详细对比了新旧 API,并重点介绍了新 API(如 MainActorMessage)的优势。一个关键特性是,新旧 API 可以“桥接”互通,允许开发者逐步迁移。尽管新 API 在观察时获取具体发送者上有限制,但仍是未来的首选方案。

🐎 When To Kill A Project

@含笑饮砒霜:这篇文章是《War Stories》系列访谈的一部分,聚焦 iOS 领域知名开发者戴夫・弗沃(Dave Verwer)30 年职业生涯中的项目经验,核心围绕 “何时该终止一个项目” 展开,通过多个真实案例分享了成功与失败带来的关键启示。戴夫的经验本质上围绕 “理性决策” 展开:无论是失败的项目(及时止损、诚信负责)、误判市场的项目(重视真实需求调研),还是完成使命的成功项目(主动退出),核心都是 “聚焦有价值的部分,砍掉无效投入”。同时,信任、社区协作和对行业趋势的预判,也是项目决策中不可或缺的因素。

🐢 How to Build Scalable White-Label iOS Apps: From Multi-Target to Modular Architecture

@AidenRao:白标 iOS 应用是一个可重用的应用模板,可以针对多个客户 / 品牌进行定制和重新包装。本文探讨了 iOS 白标 App 的架构演进之路,从多 Target 方案的维护困境出发,深入讲解了如何借助模块化思想,通过有效的依赖与配置管理,构建一个更具可维护性与可扩展性的统一代码库。

🐎 Task Identity

极速男孩:文章指出 SwiftUI .task 的常见陷阱:它默认只在视图出现时运行,不会自动响应属性变化。若 View 的入参更新,Task 不会重跑,导致数据不同步。解决方案是使用 .task(id: 依赖项)。通过显式绑定依赖(如 url),当值变化时,SwiftUI 会自动取消旧任务并重启新任务,确保副作用逻辑与最新状态保持一致。

🐎 Pitfalls of Parameterized Tests

@david-clang:本文分享了 Swift Testing 中参数化测试的五大常见陷阱,并提出了关键的最佳实践。其核心思想是:应在测试数据中预先建立清晰的“输入-输出”映射关系,并使用预定义的静态值作为期望结果,从根本上避免测试逻辑与实现逻辑的耦合。

🐎 ScrollView snapping in SwiftUI

@DylanYang:作者向我们介绍了在 SwiftUI 中如何通过设置 scrollTargetBehavior 来调整 ScrollView 滑动的目标位置,除了我们在 UIKit 中熟知的按页滑动 .paging 选项外,还有 .viewAligned 选项允许我们按照 view 的尺寸来决定滑动的终点。文中有较多动图展示,感兴趣的读者可以阅读本文了解更详细的信息。

🐎 Building Peer-to-Peer Sessions: Advertising and Browsing Devices

@Damien:文章详解用 Multipeer Connectivity 框架实现 iOS 近场通信:配置权限、初始化 PeerSessionManager,用 MCNearbyServiceAdvertiser 广播自身并自动接受连接,同时用 MCNearbyServiceBrowser 发现与维护设备列表,附完整 Swift 源码展示如何整合广告、浏览、会话管理等功能,实现设备间的加密点对点通信。

工具

Mole:像鼹鼠一样深入挖掘来清理你的 Mac

@EyreFree:Mole 是一款面向 macOS 系统的工具,可以大概理解为是 CleanMyMac + AppCleaner + DaisyDisk + Sensei + iStat 的聚合,主要作用如下:

  • 系统状态监控:通过 mo status 命令提供交互式仪表盘,实时展示 CPU、内存、磁盘、网络等系统关键指标,支持 Vim 风格导航操作;
  • 系统清理功能:可安全清理系统缓存,提供 --dry-run 预览模式和白名单管理功能,降低误删风险,还支持通过 mo touchid 启用 Touch ID 授权 sudo 操作;
  • 磁盘分析能力:借助 mo analyze 命令分析磁盘占用情况,帮助识别大文件和缓存条目,便于用户释放存储空间。

对于需要管理 macOS 系统资源、进行系统清理或监控的团队成员来说,Mole 是一个实用的工具选择。

🐎 30 分钟解决 Claude 封号问题:程序员的终极自救指南

@阿权:文章详细介绍如何通过自建 VPS 解决 Claude 封号问题,包含完整的服务器搭建、客户端配置和开发工具设置步骤,让你稳定使用 Claude Code 等 AI 开发工具。

关键解决的痛点是:IP 不纯净。使用公共代理(机场 / VPN)易触发 Claude 风控封号。解决思路也很简单:自建 VPS。

代码

🐎 MachOSwiftSection: 🔬 A Swift library for parsing mach-o files to obtain Swift information.

@Kyle-Ye: MachOSwiftSection 是一个用于解析 Mach-O 文件并提取 Swift 元数据信息的 Swift 库。它基于 MachOKit 扩展实现 , 可以从编译后的二进制文件中提取协议描述符(Protocol Descriptors)、协议遵循关系(Protocol Conformance)和类型上下文描述符(Type Context Descriptors)等核心信息。该库同时提供了 Swift 包和命令行工具 swift-section,支持对二进制文件进行多架构分析和信息导出。对于需要进行逆向工程、安全分析或从编译产物生成 Swift 接口文件的开发者来说,这是一个实用的底层工具。

内推

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

  • [北京/上海] 京东 - iOS/Android/鸿蒙/前端

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

关注我们

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

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

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

说明

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

预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)

❌
❌