# 老司机 iOS 周报 #228 | 2022-12-19

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

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

## 新闻

### [D2 脑图 | 第十七届 D2 终端技术大会](https://www.yuque.com/d2conference/17thd2map)

上周末 D2 完成了所有的分享，内容干货满满，这是对所有 22 场分享的笔记，错过直播的同学可以快速查看浏览脑图整理。

## 文章

### 🐕 [How to manage build settings using Xcode configuration files](https://www.danijelavrzan.com/posts/2022/11/xcode-configuration/)

[@享耳先森](https://github.com/iblacksun)：相信大家的 App 都会遇到多环境构建的问题，比如 QA 、预发、Production 环境，一不小心在提审时候还容易搞错版本。本文介绍了利用 `xcconfig` 文件做环境配置，比如不同环境使用不 App Icon 或 App Name。

### 🐕 [从 Linux 零拷贝深入了解 Linux-I/O](https://mp.weixin.qq.com/s/j1KjR5bRQV6oGrU5tsyHgg)

[@老驴](https://weibo.com/u/6090610445)：腾讯技术出品的一篇介绍 Linux 零拷贝的文章。在 iOS 开发中，大家可能或多或少都接触过 mmap，但是可能知道 mmap 只是零拷贝其中一种的同学并不多，Linux 还有其他的零拷贝实现形式来优化数据的读写。

### 🐎 [Security Application Static Analysis applied to iOS and Gitlab CI](https://benoitpasquier.com/2022/07/security-application-static-analysis-applied-to-ios-and-gitlab-ci/)

[@红纸](https://github.com/nianran)：在本文中作者分享将安全测试工具([MobSF](https://github.com/MobSF/Mobile-Security-Framework-MobSF)) 集成进入 Gitlab Runner 中，以此来检测代码的安全性，并自定义脚本转换输出结果，产出可靠的分析报告。对于 CI/CD 感兴趣的同学可以做个参考。

### 🐕 [any Idea How to Use some Generics?](https://async.techconnection.io/talks/frenchkit-2022/antoine-van-der-lee-any-idea-how-to-use-some-generics/)

[@AidenRao](https://weibo.com/AidenRao)：一篇关于泛型的视频演讲。在你的实现中可能并不喜欢使用泛型，因为它看起来很复杂且难以编写。本篇演讲有丰富的代码实例，帮助你在 swift 中理解和使用泛型。如果你不喜欢看视频，也可以阅读这篇博客，它包含视频演讲里的所有内容：[Generics in Swift explained with code](https://www.avanderlee.com/swift/generics-constraints/)

### 🐕 [哔哩哔哩 Android 打包优化与云编译](https://mp.weixin.qq.com/s/xls_AL9IyR3580zz8CfCOA)

[@Crazy](https://github.com/jiyan135960)：本文是一篇侧重于 Android 云编译方面的介绍性文章，讲解了云编译的流程与打包优化的方向。本文主要对 d8 的流程以及 hook 方案进行了分析与讲解，并且对编译的优化也提出了切实可行的方向性建议，值得有需要开发云编译平台或思考如何优化打包速度的同学进行学习与参考。

### 🐕 [Understanding SwiftUI view lifecycles](https://oleb.net/2022/swiftui-view-lifecycle/)

[@EyreFree](https://github.com/EyreFree)：作者编写了一个展示 SwiftUI 生命周期的应用，这个应用能让你观察不同的 SwiftUI 结构和容器如何影响视图的生命周期，包括它的状态的生命周期和 `onAppear` 什么时候被调用。应用的代码开源在 GitHub（[ole/swiftui-view-lifecycle](https://github.com/ole/swiftui-view-lifecycle)）上，可以在 iOS 和 macOS 平台编译，正在学习 SwiftUI 的同学可以试试，对理解视图树和渲染树以及视图生命周期和状态有一定的帮助。

### 🐕 [Testing Apps with an iPhone and the CarPlay Simulator](https://www.createwithswift.com/testing-apps-with-an-iphone-and-the-carplay-simulator/)

[@Barney](https://github.com/BarneyZhaoooo)：本文主要介绍了如何使用 Apple 全新独立 CarPlay 模拟器应用程序在 iPhone 和 Mac 上测试支持 CarPlay 的应用程序。

### 🐢 [利用 Virtualization 构建虚拟机，从未如此简单](https://mp.weixin.qq.com/s/t7WNfN4snPM70Q91rc-ScQ)

[@mellow](https://github.com/midmirror): 本文介绍了平台虚拟化技术的方案类型，分析了 macOS 上的虚拟化方案。通过  Virtualization.framework 和基于这个框架的命令行工具，我们一起创建可用的 macOS 虚拟机、Linux 虚拟机（GUI）、Linux（CLI），感受现代虚拟机强大的性能。利用 Virtualization 打造属于专属自己的虚拟机，从未如此简单！

## 工具

### 🐎 [iOS 代码规范工具 SwiftLint SwiftFormat](https://juejin.cn/post/7171725810544738317)

[@zoeGuo](https://github.com/zoeGuo)：文章简要介绍了 SwiftLint、SwiftFormat 两种代码格式工具的安装步骤以及使用技巧，读者也可以通过文中链接的各工具官网获取更多使用信息。

- SwiftLint：强制检查 Swift 代码风格和规定的工具，以 [Ray Wenderlich's Swift 代码风格指南](https://github.com/kodecocodes/swift-style-guide)为基础。
- SwiftFormat ：快捷格式化 Swift 代码的工具。

## 摸鱼周报

[@摸鱼周报 #79](https://mp.weixin.qq.com/s/HdEhmXt60853tzM6xiVUwA)：第 79 期摸鱼周报来了，一起来看下本期概要

* 本期话题：iOS 16.2 发布，带来了无边记 App
* 本周学习：Xcode 僵尸对象 Zombie Objects
* 内容推荐：几篇 Swift 相关的文章
* 摸一下鱼：再次解读灵动岛的定位；面相算法初学者的算法书「Hello 算法」；关于独立开发如何养活自己的讨论

## 内推

重新开始更新「iOS 靠谱内推专题」，整理了最近明确在招人的岗位，供大家参考

具体信息请移步：https://www.yuque.com/iosalliance/article/bhutav 进行查看（如有招聘需求请联系 iTDriverr）

## 关注我们

我们是「老司机技术周报」，一个持续追求精品 iOS 内容的技术公众号，欢迎关注。

**关注有礼，关注【老司机技术周报】，回复「2021」，领取 2017/2018/2019/2020 内参**

![](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）
