# 老司机 iOS 周报 #306 | 2024-09-23

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

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

## 文章

### 🐢 [Xcode Folders & Groups](https://troz.net/post/2024/xcode_folders_groups/)

[@CrazyCoderShi](https://github.com/CrazyCoderShi): Xcode 15 到 Xcode 16 有不少变化，本文就 Folders & Groups 相关变化做了一些比较，比如 : 添加文件，创建 Group 等；最终作者也给出了一些总结性的建议，如果有不习惯新组织形式的小伙伴依然可以保持 15 时候的形式.

### 🐢 [COW2LLVM: The isKnownUniquelyReferenced Deep-Dive](https://jacobbartlett.substack.com/p/cow2llvm-the-isknownuniquelyreferenced)

[@Cooper Chen](https://github.com/cjlcooper)：Swift 编译器中的 copy-on-write（CoW）优化了 Swift 结构体，结合了值语义和引用语义。它将数据存储在堆内存中，允许通过轻量级指针高效复制，同时确保在数据更改时触发值语义。这种技术被 Swift 的标准类型（如 Array 和 String）所采用。这篇文章深入探讨了 Swift 编译器中的 CoW 优化，文章将带领读者探索 Swift 编译器的源代码，揭示 CoW 的工作原理，旨在让读者对这一复杂的机制有更深入的理解。

### 🐕 [SwiftUI's Observable macro is not a drop-in replacement for ObservableObject](https://www.jessesquires.com/blog/2024/09/09/swift-observable-macro/)

[@Barney](https://github.com/BarneyZhaoooo)：文章指出 SwiftUI 的 `@Observable` 宏并非 `ObservableObject` 的完美替代。主要区别在于初始化行为： `@StateObject` 仅初始化一次，而 `@State` 每次视图重建时都会重新初始化。这可能导致意外行为，建议将全局状态放在 `App` 结构中以避免问题。

### 🐢 [我是怎么做个人知识管理（PKM）的](https://starming.com/2024/09/12/my-pkm/)

[@含笑饮砒霜](https://weibo.com/chinafishnews/)：这篇文章概述了作者个人知识管理（PKM）的历程与心得，从早期使用备忘录、Evernote 等工具，到探索 Bear、Notion、Obsidian 等结构化笔记应用，作者经历了从信息囤积到注重信息消化的转变，最终采用卢曼卡片盒笔记法，通过闪念笔记、文献笔记、永久笔记等形式，建立笔记间的关联，形成知识网络。同时，结合 P.A.R.A 框架优化管理流程，并引入费曼学习法、CODE 方法论等工具促进知识内化。作者强调工具与方法的选择应基于个人需求，且写作是知识管理的重要产出形式。整篇文章为读者提供了关于如何高效管理和利用信息的实用指南。

## 工具

### [swift-export](https://swiftpackageindex.com/franklefebvre/swift-export)

[@Smallfly](https://github.com/iostalks)：swift-export 是一款命令行工具，用于在 macOS 上更容易地签名和公证可执行包。这可以帮助开发者简化在 macOS 上分发应用程序时的安全和合规性流程。具体来说，它包括以下功能：

- **签名**：为应用程序添加数字签名，这是 macOS 应用程序分发的一个要求，以确保应用程序的来源和完整性。
- **公证**：将应用程序提交给 Apple 进行公证，这是 macOS Catalina 及更高版本中的一项新要求，用于确保应用程序在启动时不会损害用户的安全。

这个工具对于需要频繁构建和分发 macOS 应用程序的开发者来说非常有用。

## 代码

### [HandVector 2.0 版本更新](https://juejin.cn/post/7408086889591390262)

[@BluesJiang](https://github.com/BluesJiang)：这个之前推荐过的开源库又迎来的大的更新，新增了 HandleShape 的 API，给不同手的不同形态给出了具象化的分类，可以更语义化的了解目前手势的情况，如手掌弯曲了多少、手指捏合了多少、手指弯曲了多少等。有利于开发快速调整以寻找合适的手势匹配参数，而不是像之前录制手势那样必须完全精准的重现手势才能达成目的。对手势交互依赖比较重的应用可以考虑升级和使用。

### 🐎 [Hummingbird 2](https://forums.swift.org/t/hummingbird-2/74535)

[@DylanYang](https://github.com/Dylan19Yang)：Hummingbird 是一个用 Swift 编写的轻量又灵活的后端框架，它包含了路由、请求和结果处理、编解码等诸多能力。它最近发布了新版本 Hummingbird 2，代码整体基于 Swift 的结构化并发进行了重写，使代码更易读，感兴趣的读者可以关注一下。

## 内推

重新开始更新「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）
