# 老司机 iOS 周报 #296 | 2024-07-08

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

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

## WWDC24 内参

### 🌟 [WWDC24 10144 - What's New in SwiftUI](https://xiaozhuanlan.com/topic/5931472806)

[@WBear](https://github.com/WBearJ)：SwiftUI 作为苹果在 2019 年发布的跨平台框架至今，经过多年的版本更新、优化迭代，已经相对成熟。国外已经有部分公司已经开始使用 SwiftUI 进行商业化开发了，对已有 app 进行重构和更新和新 app 的从 0 开发。国内目前因大量用户的 iOS 版本还停留在较早版本，所以导致 SwiftUI 在国内不温不火。但是 SwiftUI 作为苹果未来主推的方式，作为 iOS 开发者，提前了解与学习 SwiftUI 并不是无用功，以备不时之需 (毕竟小组件只能用 SwiftUI 来开发，而且想要写出更酷炫的 Vision Pro app ，学习 SwiftUI 也是必不可少的环节)。

### 🌟 [WWDC24 10136 - Swift 的新功能](https://xiaozhuanlan.com/topic/2470951386)

[@bq](https://github.com/bqlin)：文章简要回顾 Swift 过去十年的历史，介绍社区通过工作组、扩展包生态和增加平台支持来促进 Swift 发展。还介绍一种默认实现数据竞争安全的新语言模式，以及一个允许在高度受限系统上运行的 Swift 语言子集。最后将探索一些语言更新，包括不可复制类型、类型化抛出和改进的 C++ 互操作性。

## 文章

### 🐕 [Async await in Swift explained with code examples](https://www.avanderlee.com/swift/async-await/)

[@zoeGuo](https://github.com/zoeGuo)：这篇文章很全面的讲解了 Swift 中 `async` 和 `await` 在处理异步任务中的作用和用法。并探讨了结构化并发的概念，通过线性执行方法，使异步代码执行顺序需更加清晰，与传统基于闭包的的异步编程相比，结构化并发更简洁、易理解。同时代码示例了如何将基于闭包的异步代码转换成使用 `async` 和 `await` 处理的新结构。文末还讨论了 Swift 6 的新特性和相关迁移策略。

### 🐎 [Flutter 架构设计：MVVM + Repository](https://mp.weixin.qq.com/s/pEQmf9LjhpsHQ7SOe33IPg   )
[@极速男孩](https://github.com/ztlyyznf001)：文章介绍了 Flutter 中的 MVVM+Repository 架构设计，强调高内聚、低耦合的核心原则。通过分离关注点， MVVM 使代码更易于维护和测试，结合 Repository 模式进一步解耦业务逻辑和数据访问。文中详细解释了 MVC, MVP 和 MVVM 的演变原因，并提供了 MVVM+Repository 在 Flutter 中的实现示例，展示了如何通过 StreamController, FutureBuilder 和 StreamBuilder 进行数据绑定和异步操作管理。

### 🐎 [Plotting a Path to a Package Ecosystem without Data Race Errors ](https://www.swift.org/blog/ready-for-swift-6/)

[@Damien](https://github.com/ZengyiMa)：本文主要讨论了 Swift 6 语言模式对于数据竞争安全性的改进。Swift 6 可以帮助消除潜在的并发错误，提高代码的全性和可维护性。目前，已有超过 43% 的包没有数据竞争错误，这对于 Swift 6 beta 过程的第一周来说是一个很好的开始。

### 🐎 [普通 iOS 开发者的第一款 Harmony Next 应用](https://mp.weixin.qq.com/s/KjydTcbUQAafB6zFIi7yDw)

[@Crazy](https://github.com/jiyan135960)：本篇文章中不包含代码，读起来会很快，但是里面包含了很多产品开发中的关键点。抛开 Harmony 不谈，这篇文章也可以为其他的移动端产品开发提供很多的借鉴，如果想成为独立开发者的话，更要仔细阅读此文。本文从立项开始讲起，其中有竞品分析，技术选型，之后更有隐私协议等合规流程的介绍，可以说是对一个移动端应用从开发到上架的大致的重要任务都已提及。俗话说实践出真知，看完了文章，大家可以尝试自己按照这套流程自己写一个小应用看看反响。

## 工具

### 🐕 [Generative AI for beginners](https://github.com/microsoft/generative-ai-for-beginners)

[@JonyFang](https://github.com/JonyFang): Generative AI for Beginners 是微软 Cloud Advocates 团队推出的生成式 AI 入门的系列课程，分十二章介绍了构建生成式 AI 应用程序的基础知识，课程仓库在 GitHub 上已有超过 5.5w Stars。教程中逐章介绍了生成式人工智能原理和应用程序开发的知识点，提供了导学视频、相关扩展材料、代码示例及相关进阶的学习资源。

### 🐎 [AutoCorrect](https://github.com/huacnlee/autocorrect)

[@Smallfly](https://github.com/iostalks)：AutoCorrect 是一个基于 Rust 编写的工具，用于「自动纠正」或「检查并建议」文案，给 CJK（中文、日语、韩语）与英文混写的场景，补充正确的空格，纠正单词，同时尝试以安全的方式自动纠正标点符号等等。

类似 ESlint、Rubocop、Gofmt 等工具，AutoCorrect 可以用于 CI 环境，它提供 Lint 功能，能便捷的检测出项目中有问题的文案，起到统一规范的作用。

支持各种类型源代码文件，能自动识别文件名，并准确找到字符串、注释做自动纠正。

## 代码

### [WhisperKit](https://github.com/argmaxinc/WhisperKit/)

[@DylanYang](https://github.com/Dylan19Yang)：一个集成了 OpenAI 的 Whisper 语音识别模型的 Swift 库，作者利用 CoreML 库和 iPhone 设备上的神经网络引擎对音频编码、文字解码等做了额外的性能优化。主页上有提供通过 TestFlight 下载的 Demo App，有兴趣的同学可以体验一下。

## 内推

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