# 老司机 iOS 周报 #145 | 2021-01-18

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

## WWDC20

本周在周报公众号上我们推送了 3 篇 WWDC20 内参专栏内的文章，每篇都很精彩！

- [RealityKit 的新变化：让构建的场景更逼真、趣味](https://mp.weixin.qq.com/s?__biz=MzI2NTAxMzg2MA==&mid=2247488833&idx=1&sn=0ac21f58f9a4138df4f7b18b205880d9)
- [探索 ARKit 4](https://mp.weixin.qq.com/s/5fKY9q071JcBWK4GVwH0Vg)
- [美化 Mac Catalyst App](https://mp.weixin.qq.com/s?__biz=MzI2NTAxMzg2MA==&mid=2247488690&idx=1&sn=e3a5a68b7782592583144fb8f3afb6e9&chksm=eaa28bb9ddd502afeb72166541a8975f6dc651e186ba8b6d6fee7ae60680e884617b58f11a89&scene=178&cur_album_id=1499758126315683840#rd)

## 新闻

### 🌟 🐕 [Flutter 2021 RoadMap](https://github.com/flutter/flutter/wiki/Roadmap)

[@CrazyCoderShi](https://github.com/CrazyCoderShi)：按照国际惯例，最近 Flutter 官方放出了 2021 年的 Flutter RoadMap，透过这份 RoadMap 我们可以清晰的了解官方团队今年的工作，2021 年 Flutter 官方主要发力在以下几点:

- 空安全
- Android & iOS 资源下载优化，新特性支持，降低混合开发复杂度等
- Web & Desktop
- 开发体验提升
- 生态建设
- 质量提升
- 新功能开发
- 版本发布节奏，全年 4 个稳定版本，每月一个 beta 版本

## 文章

### 🌟 🐕 [抖音品质建设 - iOS 安装包大小优化实践篇](https://mp.weixin.qq.com/s/LSP8kC09zjb-sDjgZaikbg)

[@含笑饮砒霜](https://weibo.com/chinafishnews/)：包大小是 App 重要的基础体验指标之一，本文为大家介绍了抖音在优化安装包大小方向做的一些探索和尝试，包括：

- AppStore 对安装包的限制沿革以及 App 花费精力优化 iOS 安装包将获得什么收益
- 如何去分析一个安装包
- 如何在线下准确把控安装包大小对 AppStore 上影响
- 常见的一些包大小优化方式
- 一些影响包大小的编码习惯

### 🐕 [Qcon 演讲实录 | XQUIC 与多路径传输技术 Multipath QUIC](https://mp.weixin.qq.com/s/3dnidnhCW-61PS5Stlb0Iw)

[@老驴](https://www.weibo.com/6090610445)：随着移动互联网的发展，传统 TCP 越来越难以满足新的移动互联网需求，于是增强型 UDP 越来越受到大家的注意，获得了高速发展。阿里团队的这篇文章介绍了基于 QUIC 标准的阿里自研版本 XQUIC 以及在此基础上的 Multipathh QUIC。虽然截止到发稿时，阿里尚未开源 XQUIC，但是其中的一些设计思路也值得借鉴。

### 🐕 [手机阿里端智能方案演进](https://mp.weixin.qq.com/s/oT5jQYQkQd-09ktFXS_OYg)

[@莲叔](https://github.com/aaaron7)：端智能可以说是最近两年移动端最具有未来感的技术方向。从苹果倾力打造的 CoreML 日趋成熟，到 Google 针对 TFLite 的持续优化以及推出类似 MediaPipe 这样的端侧 AI 框架，都代表这个方向并不是空穴来风的, 而是实打实的场景和业务赋能。端智能从场景上维度，一般分为两大类，首先是视觉图像类，主要通过人脸、手势、前后景分割等模型服务于拍摄、互动、相册等应用，已经日趋成熟，能力也越来越强。而另一类则是策略类，即是通过算法对端上的用户行为数据进行实时的挖掘和计算，来预测用户对于内容、功能的喜好或者耐受度，进而匹配相应的措施来引导用户。后一种还不算成熟，但阿里整体在后一种场景上已经有了比较多的探索与收获。

本篇文章围绕 1688 团队决策类场景的探索，介绍了决策类端智能工程化的核心组成部分，虽然没有讲太多技术细节，但对于端智能而言，方案和场景其实才是最核心也是最有价值的。强烈建议对于希望在业务中应用和落地端智能的团队参考。

### 🐕 [iOS 性能监控：Runloop 卡顿监控的坑](https://mp.weixin.qq.com/s/vMRQ0VuHLxpaY9oCNd5G8w)

[@Leo](https://github.com/leomobiledeveloper)：本文通过分析 __CFRunLoopDoObservers 函数 和 CFRunLoopAddObserver 函数的内部逻辑，分析了网络上广泛流传的 Runloop 卡顿监测方案  存在低可用性问题的原因，并给出了一份高可用的 Runloop 卡顿监测方案。

### 🐕 [Building On-Call Culture at GitHub](https://github.blog/2021-01-06-building-on-call-culture-at-github/)

[@AidenRao](https://weibo.com/AidenRao)：如何建立高效的 on-call 机制，GitHub 在 blog 分享了他们在这方面的经验。

- 推出新系统，将文件和服务进行关联，服务分配到团队。团队发生变化，文件所有权也更容易跟着变化。
- 将所有警报进行拆分， 分配到各团队，清理不再需要的警报。
- 做好生活与工作的平衡，不同时区的团队成员，一起进行 24 小时轮值。on-call 顾不过来时，团队成员也需要相互支持。
- 没有 on-call 任务的时候，更新运行手册，调整嘈杂的警报，持续改善 on-call 体验。

### 🐕 [从 Mach-O 角度谈谈 Swift 和 OC 的存储差异](https://www.jianshu.com/p/ef0ff6ee6bc6)

[@Damien](https://github.com/ZengyiMa)：本文从二进制的角度初步介绍了 Swift 与 OC 的差异性，包括 Swift 在可执行文件中函数表的存储结构、函数的存储结构等，作者从动态调用开始引入思考，逐渐探索 Swift 的二进制存储。以及从最终的结论来证明 Swift 动态调用的局限性。对于 Swift 初学者有很强的学习价值。

### 🐎 [Keep private information out of your logs with Swift](https://olegdreyman.medium.com/keep-private-information-out-of-your-logs-with-swift-bbd2fbcd9a40)

[@EyreFree](https://github.com/EyreFree)：在实际的 App 开发 & 维护过程中，我们经常会遇到将用户的错误日志等数据上传到服务端来进行排查的场景，但在这些日志中可能会包含一些用户的敏感信息，绝大部分情况下我们排查软件错误不需要了解这些具体的用户隐私数据，本文介绍了在 Swift 中如何利用 `Property Wrapper`  将敏感数据从日志中排除，快来了解一下吧。

### 🐕 [ARM64 撬开逆向大门](https://mp.weixin.qq.com/s/8HQd6st7ZvUC5f4TZ1cBWg)

ARM64 相比我们都不陌生，苹果较新的机型基本都是基于 ARM64 架构的。掌握一些 ARM64 的汇编只是对我们日常开发很有帮助，例如一些 crash 在系统库里面的，利用汇编调试会很有帮助。本文虽然开篇是针对安卓来说的，但文中关于 ARM64 汇编的介绍，以及一些指令的用法等其实也是通用的。

### 🐕 [Flutter 的性能分析、工程架构与细节处理](https://mp.weixin.qq.com/s/0R5UnVFlVbLKoV__s66HnA)

[@邦Ben](https://weibo.com/linwenbang)：有道智云技术团队将从性能、架构、适配等多个方面进行讲解实践过程中的一些实际问题，值得一看。其中还包括了 Flutter Web 的 Demo，Flutter Web Google 还在持续优化，这部分可以拭目以待。文章中也提及到了 `Flare` （动画制作工具）制作 Flutter 动画，如果对动画方面有需求的，也可以单独进行了解。

- Flare 网址：https://www.2dimensions.com

### 🐎 [如何排查无法复现的系统内部 Crash？](https://juejin.cn/post/6916048281113985032)

[@水水](https://www.xuyanlan.com): 作者从自身遇到的一个 Crash 出发，记录了从分析、假设、模拟复现、运行分析、修复 Crash 的一个过程。是非常好的一个 Crash 解决方法。希望能够给读者有所启发。

## 赞助者

虚位以待..

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

## 内推

> **百度网盘 - 北京 - iOS/Android/Flutter/音视频 研发工程师**
>
> 百度网盘是行业 Top1 的云存储产品，已经为超过 7 亿用户提供云服务。一刻相册是「百度网盘」团队出品的云相册 App，经过一年多的发展，已经跃居相册行业 Top2。部门有完善的分享培训体系，有业务和技术挑战。目前，> 部门业务处在新的高速发展时期，长期大量招人，实习、应届、社招经验不限，职级不限，欢迎投递简历。
>
> 简历发送至 xuyafei01@baidu.com，或者添加微信 xyf65803387 了解细节。

老司机周报团队联合知识小集和 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）
