# 老司机 iOS 周报 #164 | 2021-06-28

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

## WWDC 21

[@Parisfal](https://github.com/ParsifalC)：WWDC 21 圆满结束，但关于 WWDC 21 的学习才真正开始~苹果官方汇总了[新技术和已有框架的重点变化](https://developer.apple.com/documentation/New-Technologies-WWDC-2021)，本周我们针对部分内容更新了 2 篇 WWDC 21 Session 的深度解读，每篇文章都是经过不断推敲和审核才完成。

### [【WWDC21 10022】SwiftUI 技术内幕](https://xiaozhuanlan.com/topic/0619782354)

[@MetaSky](https://github.com/CreatorMetaSky)：通过阅读本文，带你一起深入解读 SwiftUI，提高应用程序的性能。

### [【WWDC21 10267/10268/10269】窥探 Xcode Cloud](https://xiaozhuanlan.com/topic/7496513820)

[@林永坚](https://github.com/JakeLin)：CI 已经成为项目开发中必不可少的一个工程环节，同时也是推动团队工程师文化的重要手段。在 WWDC 21， 苹果公司发布了官方的 CI - Xcode Cloud。通过这篇文章，我们一起窥探一下 Xcode Cloud 到底能做什么，以及我们该如何使用它？

## 新闻

### [苹果 Apple Watch 国行获国家药品监督管理局医疗器械审批！ECG 移动心电图房颤提示软件过审](https://mp.weixin.qq.com/s/NNHRz-43YCZGo4M54uA6-g)

[@Parisfal](https://github.com/ParsifalC)：终于！大陆也将支持 ECG 功能了！喜大普奔！政策上已经支持，现在就看苹果什么时候开放了。

## 文章

### 🌟 🐕 [美团民宿跨端复用框架设计与实践](https://mp.weixin.qq.com/s/902BiSBx88rUSWBX64HZqA)

[@JonyFang](https://github.com/JonyFang)：从业务角度出发，跨端技术演进更多是在不同阶段、不同时间段内业务效率上的选择，美团民宿业务在大前端融合的浪潮中也在不断探索和迭代抉择，为解决业务痛点而产出跨端框架技术。本文主要分享美团民宿在跨端复用技术探索层面以及业务实践过程中积累的经验。文章目录如下：
1. 背景
    - 美团民宿业务介绍
    - 美团民宿移动端现状
2. 美团民宿跨端复用框架设计
    - 行业现状
    - 整体方案设计
3. 美团民宿跨端复用实践
    - 跨端复用场景下的问题
    - 跨端复用应用架构
    - 跨端复用方式设计
    - 跨端复用流程规范
    - 跨端复用质量保障
    - 成果

### 🌟 🐢 [Swift 编译器 Crash—Segmentation fault 解决方案](https://mp.weixin.qq.com/s/FSlJKnC0y51nsLDp1B3tXg)

[@zvving](https://github.com/zvving)：Swift 在国内普及缓慢，自身工具链不完善是重要制约因素之一：比如不少混编项目都碰到过偶现的 `Segmentation fault: 11` 和 `Illegal instruction: 4` 编译错误，开发者对这类编译器错误大多束手无策，只能寄望于『重试一下』以及 Xcode 后续更新解决。

抖音基础技术团队深入编译链路定位问题：从编译基础概念，到提取编译参数、调试 SIL 异常定位问题，进而引入静态检查规避。内容表达上层层递进，对编译器产生的 Crash 如何调试解决提供了思路，为『面向编译器编程』提供难得一见的参考！

### 🌟 🐢 [抖音研发效能建设 - CocoaPods 优化实践](https://mp.weixin.qq.com/s/Pt6pcxKCHhdnnWPYrToNvA)

[@红纸](https://github.com/nianran)：Cocoapods 是 iOS 常用的包管理工具之一，当我们工程日渐庞大，在成百上千个组件之后，pod install 的执行效率有明显的降低。本文是抖音在实践中对于 Cocoapods 的原理分析和数点优化总结。

这边不占用篇幅，简单描述其中几点优化，详细优化方案可以查看原文进行阅读：
1. 性能评估：利用 Ruby-perf 方法级别统计系统耗时，为量化数据指标奠定基础
2. Source 源按需更新：解决研发同学忘记更新 source 源的烦恼
3. 简化决议：研发流程直接使用 Podfile.lock 进行线性决议，Molinillo 的图决议占少数比例
4. 并发下载：并发下载依赖，使用 HTTP 代替 Git 访问
5. 沙盒软连接：使用软链接代替拷贝，减少磁盘消耗

### 🐕 [Tagged Pointer对象安全气垫为何会失效](https://juejin.cn/post/6975765788355461133#heading-9)
[@Smallfly](https://github.com/iostalks)：Objective-C 作为一门动态语言，在运行时做安全防护非常有必要。本文记录了作者加了安全防护后，依然发生了 `Unrecognized Selector` 类型崩溃的定位过程。为什么 Tagged Pointer 类型的对象，安全防护失效了？作者从原理出发，通过分析 Tagged Pointer 在不同系统的内存结构，最终修复了这个问题。推荐对 Tagged Pointer 实现原理感兴趣的同学阅读。

### 🐕 [Swift Hook新思路--虚函数表](https://mp.weixin.qq.com/s/mjwOVdPZUlEMgLUNdT6o9g)

[@四娘](https://kemchenj.github.io)：这是由 58 团队带来的文章，深入分析 Swift 的类结构以及基于 vtable 的函数调用过程，并且提出了通过修改 vtable 实现 method swizzle 的方法。

### 🐎 [SSWG Annual Update 2020](https://forums.swift.org/t/sswg-annual-update-2020/49223)

[@xiaofei86](https://github.com/xiaofei86)：自从上次 Swift 服务端工作组（SSWG: Swift server work group）进行重大更新以来，发生了很多事情。本文对 SSWG 过去一年的工作成果进行回顾，包括 gRPC、MongoDB、AWS Lambda 的引入；对明年的目标进行展望，包括 Concurrency 的接入、文档和工具的改进，以便对非苹果平台的开发提供更好的支持。感兴趣的同学可以持续关注。

## 代码

### [Surge](https://github.com/Jounce/Surge)

[@老峰](https://github.com/gesantung)：[Accelerate](https://developer.apple.com/documentation/accelerate) 框架为 iOS 提供了大规模的数学和图像高性能计算能力, 但其 API 却不易使用, Surge 正是这样一个 Swift 库，它使用 Accelerate 框架为矩阵数学、数字信号处理和图像处理提供简单易用的高性能 API，如常用的 + ，- ， * ，/ ，有需求的同学可以了解一下。

## 音视频


## 赞助者

虚位以待..

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

## 内推

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