# 老司机 iOS 周报 #302 | 2024-08-19

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

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

## 新闻

### 🐕 [NFC & SE Platform for Secure Contactless Transactions - Support - Apple Developer](https://developer.apple.com/support/nfc-se-platform/)

[@Barney](https://github.com/BarneyZhaoooo)：苹果即将在 iOS 18.1 中引入 NFC & SE 平台，让开发者能在 iOS 应用中实现安全便捷的无接触支付等功能。开发者得先跟苹果签个协议，确保他们遵守行业规则和保护用户隐私。新系统要求 iPhone XS 或更新机型，运行 iOS 18.1 或更高版本。

## WWDC24 内参

### 🌟 [WWDC24 10125 - 自动化创建 Passkey 和全新密码 App 帮助简化登录流程，并提升安全性](https://xiaozhuanlan.com/topic/6145027938)

[@米广](https://github.com/yz06276)：即刻起开始部署更加简单易用，更加安全的 Passkey。

### 🌟 [WWDC24 10100 - ARKit 新功能介绍](https://xiaozhuanlan.com/topic/1830462795)

[@lijingpei](https://github.com/lijingpei2016)：本文介绍了 2024 年 ARKit 的新增内容。

## 文章

### 🐎 [Swift Navigation: Powerful navigation tools for all Swift platforms](https://www.pointfree.co/blog/posts/149-swift-navigation-powerful-navigation-tools-for-all-swift-platforms)

[@DylanYang](https://github.com/Dylan19Yang)：本文介绍了一个新的导航用开源库 Swift Navigation。这个库适用于 SwiftUI、UIKit、AppKit 以及其他一系列非苹果的平台上。它整体沿用了 SwiftUI 的导航思想，通过一些宏的封装和枚举的使用，使开发者能够更简洁的进行导航的管理。同时在 UIKit 等非 SwiftUI 的框架下，它也提供了视图和数据的绑定能力，让开发者能够在数据更新时及时更新视图。

### 🐕 [Non-Sendable types are cool too you know ](https://www.massicotte.org/non-sendable)

[@zoeGuo](https://github.com/zoeGuo)：本文深入探讨了 Swift 语言中的并发特性：`Sendable` 和 `non-Sendable` 类型的使用，提出二者在多线程编程安全中的重要作用，以及它们在处理线程安全和协议一致性方面具有各自的优势。文章通过实例分析了 `non-Sendable` 类型在异步函数中的应用，并提出了使用隔离参数的解决方案，使得这些类型在并发环境中更加灵活。最终，作者鼓励开发者充分利用 `non-Sendable` 类型，以提高代码的线程安全和并发性能。

### 🐕 [Diffuse reflection UV computation tool](https://www.elkraneo.com/diffuse-reflection-uv-computation-tool/)

[@BluesJiang](https://github.com/BluesJiang)：本文介绍了苹果在 Vision Pro 中的观影模式下环境对屏幕内容的反射效果的实现方式。今年苹果在 WWDC24 上开放了这个效果给开发者们使用，本文就是介绍了相关的工具和使用。想要实现这种反射效果，苹果给了一个 python 脚本来我们计算 Emitter UV 以及 Attenuation UV，并且简单的介绍了原理。这个工具可以实现任何物体类型投射的光线都可以在预定的位置快速计算其反射的效果。在 Reality Composer Pro 上使用这两种 UV 就可以把反射 UV 应用到场景上。这种实现方式也给我们自研引擎的开发者们提供了一种新的思路。

### 🐎 [Exploring OpenAI: Creating a Proxy with AIProxy for iOS and macOS Apps](https://www.rudrank.com/exploring-openai-creating-a-proxy-with-aiproxy/)

[@EyreFree](https://github.com/EyreFree)：这篇文章介绍了作者使用 AIProxy 服务来保护 OpenAI API 密钥的经验。AIProxy 通过加密和分割 API 密钥提高安全性，并使用 DeviceCheck 框架防止未授权访问。文章详细讲解了 AIProxy 的工作原理、安全措施及在 iOS 和 macOS 应用中的实施步骤。作者展示了如何在 Swift 项目中集成 AIProxy，包括设置依赖、创建服务实例和发送 API 请求。文章还讨论了优化系统提示以控制 API 调用成本，以及使用 AIProxy 仪表板监控请求情况。有需要的同学不要错过。

### 🐎 [Concurrency Step-by-Step: A Network Request](https://www.massicotte.org/step-by-step-network-request)

[@Smallfly](https://github.com/iostalks)：本文是一篇 SwiftUI 并发编程教程，通过一个网络请求示例，讲解了如何使用 GCD 和 `async/await` 进行线程安全的操作。文章强调了区分 I/O 和 CPU 密集型任务的重要性，并介绍了 `nonisolated` 关键字的使用，以避免在非主线程上操作 UI 状态。建议读者从基础学起，逐步深入 Swift 并发编程。

### 🐕 [Migrating KeyboardKit to Swift 6 language mode](https://douglashill.co/keyboardkit-swift-6/)

[@AidenRao](https://weibo.com/AidenRao)：这篇文章介绍了将 KeyboardKit 更新到 Swift 6 的一些迁移经验，将 KeyboardKit 实现了完全的数据竞争安全性。KeyboardKit 是一个键盘控制的开源框架，作者在迁移过程中遇到了一些有趣的问题，包括 UIViewController 子类无法使用无参数的初始化方法、全局常量被错误地隔离等。这些变化对使用 KeyboardKit 的开发者没有影响，但如果感兴趣，可以查看最新版本的 KeyboardKit。

## 内推

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