你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
文章
🐕 Splitting Large SwiftUI Views in the Apple's way
@AidenRao:在 SwiftUI 中,将冗长的 body 拆成计算属性或 @ViewBuilder 虽然能改善代码可读性,却不会形成新的更新边界;父视图的状态发生变化时,这些内容依然会跟随 body 一起重新求值。作者结合 Walk Mate 的实际重构与 Apple 最新的视图结构建议,指出更有效的做法是把职责明确、依赖相对独立的区域提取为单独的 View 结构体,并只传入其真正需要的数据。这样 SwiftUI 就能比较子视图的输入,在数据没有变化时跳过不必要的 body 计算。
🐕 The Anatomy of a Reusable SwiftUI View
@阿权:文章讨论了如何设计 API 接近 Apple 原生视图的自定义可复用 SwiftUI 组件。设计思路主要分为:
- 组件分类:语义组件(Semantic)、规定性组件(Prescriptive)。
- 设计原则:先建模语义,遵循数据流,保留原生行为,保持可预测。
- 具体的 API 设计,扩展 API 设计。
- 最后作者给出了一份最佳实践清单:
- 判断组件是语义型还是规定型
- 先建模有效状态和有意限制,再考虑外观
- 从灵活的基础初始化器开始,添加聚焦的便捷初始化器
- 匹配系统视图的命名和参数类型
- 遵循 SwiftUI 数据流和交互约定
- 优先使用宽泛的系统抽象(
View、ShapeStyle、LocalizedStringResource) - 语义组件用自定义视图样式,规定性组件用环境值
- 将无障碍和相关环境值视为组件的一部分
- 保持优先级和扩展点可预测
- 在有意义的状态下预览和测试组件
🐕 Previews and MCP
@Cooper Chen:作者分享了在 Xcode 27 beta 中利用 MCP 调用 RenderPreview 工具的探索,详细梳理了从建立连接、发送 JSON-RPC 请求到接收预览截图的技术链路。文章并未回避现实障碍——沙盒限制让直接调用 xcrun mcpbridge 无法上架 Mac App Store,而借助 XPC 服务、外部托管助手应用等变通方案则伴随着复杂的管理成本。尽管如此,作者仍满怀热情地预告了即将推出的 PreviewSmith,为开发者提供直观的预览浏览体验。全文既有底层接口的深入剖析,也有对工程化挑战的坦诚记录,技术干货与个人色彩兼备,值得关注 SwiftUI 预览生态的开发者一读。
工具
xntfs 和 xlinuxfs:让 macOS 更自然地读写跨平台磁盘
@EyreFree:两款 macOS 工具 xntfs 与 xlinuxfs,依托系统原生 FSKit 框架实现跨平台磁盘读写,无需依赖 macFUSE 与内核扩展。xntfs 结合 ntfs-3g,让系统自动挂载并正常读写 NTFS 格式磁盘,补齐 macOS 原生短板。xlinuxfs 基于 LKL 方案,直接调用 Linux 原生驱动,支持 ext4、XFS、Btrfs 等主流 Linux 文件系统。两款工具定位轻量化,仅负责磁盘挂载与读写,附带状态诊断、权限设置等基础功能。接入后外部磁盘可被系统原生识别,在 Finder 中正常使用,有效消除跨系统存储设备的使用割裂感,适配开发、运维等多类使用场景。
应用商店链接:
xntfs:https://apps.apple.com/cn/app/xntfs/id6782636021
xlinuxfs:https://apps.apple.com/cn/app/xlinuxfs/id6785355678
内推
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
具体信息请移步: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)

