# 老司机 iOS 周报 #317 | 2024-12-23

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

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

##  Developer - 设计开发加速器

### [展望未来：打造出色的 visionOS App（线下）](https://developer.apple.com/events/view/F7QL84UKJV/dashboard)

参加在上海 Apple 开发者中心举办的为期一天活动，了解如何打造出色的 visionOS App。

你将通过三个讲座学习如何开始使用 SwiftUI，探索一流的 App，并深入了解 RealityKit 和 Reality Composer Pro。随后，你还将听取开发者社区成员的分享，并有机会体验一系列 visionOS App 示例。

## 文章

### 🐕 [得物 iOS 函数调用栈及符号化调优实践｜得物技术](https://mp.weixin.qq.com/s/KSAZRfqYmBPuooXJM5qn0A)

[@Smallfly](https://github.com/iostalks)：这篇文章介绍了得物技术团队如何解决 iOS 隐私合规检测的性能难题。文章详细解析了 `+[NSThread callStackSymbols]` 的内部机制，并通过逆向工程优化了调用栈的获取与符号化过程。实现包括自定义 `callStackSymbols` 方法、缩短堆栈长度以及智能缓存策略，显著降低了 CPU 占用，提升了检测效率。为 iOS 开发者提供了优秀的性能优化实践案例。

### 🐕 [Exploring Apple Intelligence: Image Generation](https://www.createwithswift.com/exploring-apple-intelligence-image-generation/)

[@Cooper Chen](https://github.com/cjlcooper)：Apple 推出了几款创新的图像生成工具，推动个性化创作和数字交流。Image Playground 允许用户通过文本和视觉提示生成图像，并与 PencilKit 集成，带来 Image Wand 功能，让用户将手绘草图转化为精美图像。同时，Genmoji 让用户根据文本描述生成个性化表情符号，增强了数字沟通的表现力。这两款工具不仅注重创意自由，还在包容性和版权合规性上做出了努力。此外，开发者可以将这些功能集成到应用中，扩展数字创作的可能性。而这篇文章为数字创作和个性化互动提供了不错的参考，展示了 Apple 工具如何为用户和开发者带来创意支持。

### 🐕 [Apple' s use of Swift and SwiftUI in iOS 18](https://blog.timac.org/2024/1208-state-of-swift-and-swiftui-ios18/)

[@ZengyiMa](https://github.com/ZengyiMa)：这篇文章分析了苹果在 iOS 18 中 Swift 和 SwiftUI 的使用情况。iOS 18 中使用 Swift 和 SwiftUI 的应用数量持续增长，甚至在安全固件的低级别部分开始使用 Swift。此外，新开发的技术，如 Apple Intelligence，也依赖于 Swift。截止目前，iOS 18 现在包含 592 个使用 SwiftUI 的二进制文件，Swift 代码的二进制文件数量相比较 iOS 17 增加了 50%。

### 🐎 [JDImage - 京东自研鸿蒙图片库](https://juejin.cn/post/7444800867030286371)

[@Crazy](https://github.com/jiyan135960)：JDImage 是京东使用 C++ 打造的一款跨平台的图片加载框架，主要解决系统和其他第三方加载组件的问题，比如加载速度较慢，格式支持不全等。JDImage 在架构上借鉴了 SDWebImage 与 Glide 等图片加载框架，将整体图片库分解为：图片缓存、解码器、图片源拉取、性能监控、图片组件五个部分，使用流水线设计灵活调整执行流程，满足各类的图片加载需求。最后关于 C++ 的跨端代码要根据自己项目的实际情况进行选择，使用之前对错误的捕捉与升降级一定要事先准备好。

## 工具

### 🐕 [HuggingChat macOS](https://github.com/huggingface/chat-macOS)

[@EyreFree](https://github.com/EyreFree)：HuggingChat macOS 是一款原生 macOS 聊天应用，由知名 AI 开源社区 Hugging Face 开发。该项目将先进的开源语言模型能力集成到桌面端，为用户提供流畅的 AI 对话体验，可以简单理解为 ChatGPT 客户端的本地大模型版。

- 原生体验：专为 macOS 设计，支持全局快捷键（⌘ + Shift + Return）快速唤起；
- 语音支持：支持实时同声传译（OpenAI Whisper）；
- 易于安装：提供直接下载和 Homebrew 安装两种方式；
- IDE 集成：通过 VSCode 扩展支持代码上下文理解，提供更准确的编程建议；
- 开源透明：基于 Swift 开发，代码完全开源，支持社区贡献；
- 使用门槛低：仅需 macOS 14.0 以上系统即可运行，安装即用。对于开发者，项目提供完整的开发文档和贡献指南。

作为 Hugging Face 出品的官方客户端，该项目让优质开源 AI 模型触手可及，为想要摆脱商业 AI 服务的用户提供了绝佳选择。项目活跃度高，安装简单，值得一试。

### 🐢 [Skip: Build native apps for iPhone and Android with Skip](https://skip.tools)

[@bq](https://github.com/bqlin)：通过 Skip 项目，你可以使用 Swift 同时编写 Android 和 iOS 原生应用。没看错，Swift 也有反客为主的一天了。Skip 项目的基本原理是：当你在编写 Swift 和 SwiftUI 源代码时，Skip Xcode 插件会不断构建用于 Android 的等效代码，因此最终 App 产物都能获取原生的性能和原生的交互体验。

- 真正原生：与其他跨平台方案相比，Skip 项目是真正的原生代码。当编写 SwiftUI 代码时，将生成 Android 的 Jetpack Compose。

- 完全透明：使用 Skip 时，不会在调试器中隐藏任何信息。Skip 库是开源的，也没有复杂的运行时需要调试。

- 轻量：使用 SkipZero，iOS App 不依赖任何 Skip 框架；Android 也仅需几个 Skip 开源库。

- 内存效率：无额外的托管运行时，Skip App 在两个平台都可能地高效。

- 熟悉的 IDE：Skip 使用 Xcode IDE 进行编写，是 Swift 的首要开发环境。当需要高度自定义的 Android 能力时，则需在 Android Studio 中编写 Kotiln。

- 完美整合：Skip 与 Kotlin 和 Compose 无缝衔接，因此也很轻松集成 Android 三方库。

- 框架开放：Swift-on-Android 只是开始，Skip 的开发框架都是免费开源的。

- CI 友好：支持跨平台的单元测试，确保逻辑在跨平台中保持一致。也支持在本地或远程执行测试。

- 容易迁移：代码都是你自己的，包括 Swift 输入和 Android 输出，因此不会持续依赖 Skip 工具。


值得注意的是，虽然框架源码是开源的，但 Xcode 转译器插件针对大型商用还是需要收费的。

## 代码

### [SwiftUI-experiments](https://github.com/mikelikesdesign/SwiftUI-experiments)

[@DylanYang](https://github.com/Dylan19Yang)：作者是一个爱好自己通过代码实现创意的设计师，他通过 SwiftUI 实现了不少有创意的交互设计，并且都提供了原型 Demo。独立开发者们如果希望尝试一些有特色的交互的话可以参考参考。

## 内推

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