# 老司机 iOS 周报 #183 | 2021-11-29

![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) 提出。

## 文章

### 🐕 [用苹果官方 API 实现 iOS 备忘录的扫描文稿功能](https://www.fatbobman.com/posts/docScaner/)

[@anotheren](https://github.com/anotheren)：iOS 系统自带的备忘录看似简单，实则功能强大。本文来自一位独立开发者，使用系统 API 尝试重现备忘录的扫描文稿功能。其主要使用了 VisionKit、Vision、NaturalLanguage、CoreSpotlight 等系统框架，推荐一读。

### 🐕 [Flutter 实现完美的双向聊天列表效果，滑动列表的知识点](https://mp.weixin.qq.com/s/LfsYzXv4GomyIbLysb-eNg)

[@CrazyCoderShi](https://github.com/CrazyCoderShi): IM 列表算是 Scrollable 视图比较常见的一个需求场景，本文从原理层面教你如何正确的使用 Flutter 开发一个 IM 滑动列表, 请仔细阅读 Center 讲解那块，非常干哟 😄

### 🐢 [干货 | 聊聊移动端安全加固](https://mp.weixin.qq.com/s/yCB2R8QPWNp2lJrQD4l_hw)

如今，我国智能手机用户达到 12 亿，移动端的安全问题也被各大家开始广泛关注，比如我们熟知的反编译、注入攻击、设备篡改等手段严重威胁到了用户的数据安全以及公司的利益。本文从 iOS 平台着手，介绍了在 iOS 上如何进行安全加固，了解一些这方面的知识，即使不做安全这一块，也有助于我们更好理解系统的运行，以及写出更安全的代码。

### 🐕 [如何系统性治理 iOS 稳定性问题](https://mp.weixin.qq.com/s/M6dekf2_jbpkZqArPx7wgA)

[@Barney](https://github.com/BarneyZhaoooo)：本文主要从以下四个章节介绍了 iOS 稳定性治理在字节的实践，并结合了很多线上问题排查经验来加以解释，深入浅出，干货满满。

- 稳定性问题分类
- 稳定性问题治理的方法论
- 疑难问题归因
- 总结回顾

### 🐕 [百度 APP 移动研发平台及 DevOps 实践](https://mp.weixin.qq.com/s/XHv5NiEgKwt_shRyJQodhw)

[@Smallfly](https://github.com/iostalks)：随着移动开发团队规模和业务规模不断增长，研发效率和质量都会受到挑战。百度 App 移动研发平台 Tekes 提供一站式服务，极大地提高了研发团队的交付效率。本文主要介绍了 Tekes 的核心功能，以及实现原理。

Tekes 经过多年的演进，目前主要包括三个大的功能：

1. 自动化研发流程
2. 组件和 App 的防劣化
3. 全局知识库

### 🐕 [Flutter 实现动态化更新 - 技术预研](https://juejin.cn/post/7033708048321347615)

[@ChengzhiHuang](https://github.com/ChengzhiHuang)：作者调研了市面上开源的三套 Flutter 动态化方案，以及相对通用的 webview 增强、UI 库模版化，共五套方案。在维护难度、学习成本、迁移成本等多个角度比较了各个方案的优劣，是一份详尽的调研结论，如果有运营相关的动态化需求，可以作为选型参考。

总体来说动态化的难度还是比较大的，挑选适合产品形态、团队规模、技术实力的方案才是最优的选择。

### 🐕 [拒绝编译等待 - 动态研发模式 ARK](https://mp.weixin.qq.com/s/2tnU4sHf9XVEaJYgyTXoaw)

[@红纸](https://github.com/ChengzhiHuang)：在大型工程面前，编译链接慢是通病。本文作者从动态库入手，平台提供基线 ipa 包，本地研发阶段时下载。同时研发仓库做动态库编译，替换原有基线 ipa 包中动态库，重签名，形成完整包，再进行装机调试。在这种模式下，本地的代码仓库就能做到最小化，编译链接时间明显缩短，再也长时间没有爆内存的烦恼了。

### 🐕 [Xcode Cloud: Automated Workflows](https://blog.devgenius.io/xcode-cloud-automated-workflows-730277773c37)

[@Parsifal](https://github.com/ParsifalC)：Xcode Cloud 是今年 WWDC 很受关注的特性功能，近期应该也有很多开发者陆续收到了 Beta 邀请。这是苹果官方的 CI/CD 工具，自然有着最适配苹果自身平台的优势，并且目前并没有看到相关收费的信息。

> 同时推荐小专栏里的 3 篇 Xcode Cloud 相关 session 解读：
>
> - [【WWDC21 10268/10269】探索 Xcode Cloud Workflows](https://xiaozhuanlan.com/topic/5493872016)
> - [【WWDC21 10267】一窥 Xcode Cloud](https://xiaozhuanlan.com/topic/2946158037)
> - [【WWDC21 10267/10268/10269】窥探 Xcode Cloud](https://xiaozhuanlan.com/topic/7496513820)

## 摸鱼周报

[@摸鱼周报 #35](https://mp.weixin.qq.com/s/fCEbYkAPlK0nm7UtLKFx5A)：第三十五期摸鱼周报来了，一起来看下本期摘要：

* Tips：count vs isEmpty
* 面试模块：Swift 中 struct 和 class 的区别，值类型和引用类型的区别。
* 优秀博客：本期继续介绍几个优秀的 Swift 开源库。
* 学习资料：戴铭的 Swift 小册子，黑五软件打折优惠整理。
* 开发工具：PhotoSweeper，一款快速而强大的重复照片清理器。

本期访谈系列邀请到的是一位在游戏行业工作的 iOS 开发。文中围绕他的工作日常，对于未来阶段 IAP 是否会支持三方支付，以及他如何坚持写博客这些事情展开讨论。感兴趣的同学可以点击这里查看全文：[人物访谈 | 一位游戏行业的 iOSer](https://mp.weixin.qq.com/s/tzYu-7H_GccjYhQh0u7zLQ) 。

## 工具

### [Learn X in Y minutes](https://learnxinyminutes.com/)

[@Parsifal](https://github.com/ParsifalC)：一个非常全面的教程大全网站，基础算法、数据结构和各类编程语言等等应有尽有，而且提供不同的翻译版本，值得加书签收藏一下。

## 赞助者

虚位以待..

**非常感谢以上赞助者的支持，如果你也有赞助我们的兴趣，欢迎添加微信 iTDriverr 哦~**

## 内推

> 上海「哔哩哔哩主站直播」招人，加入后，会主要参与 B 站直播的「平台向/业务向」开发维护工作。本次为组内直推，效率会更高，[详情查看](https://mp.weixin.qq.com/s/gYobO5hM0wPSFRNJzGBGIA)~欢迎加微信：jony_chunfang

老司机周报团队联合知识小集和 SwiftGG 翻译组收录了一份靠谱的内推职位。

如果你想**找工作**，点这里：https://www.yuque.com/iosalliance/article/bhutav

如果你想**招人**，点这里：https://www.yuque.com/iosalliance/article/ycyhf3

当然，也欢迎你关注我们每一期的周报，我们会在每期周报底部及时更新编辑内推岗位。

## 关注我们

我们开通了公众号，每期发布时公众号（LSJCoding）会推送消息，欢迎关注。

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