# 老司机 iOS 周报 #90 | 2019-11-11

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


## 新手推荐

### 🐎 [用 Flutter 打包 iOS 应用的一些细节知识](https://mp.weixin.qq.com/s/PsvVFoB91_jGzibFPIwnIw)

[@含笑饮砒霜](https://weibo.com/chinafishnews/)：本文向大家介绍 Flutter 的构建系统是如何将 Flutter 项目 (及其资源) 转换为 iOS 应用包的。可以直接使用 Flutter 工具生成，也可以使用自定义的 Xcode 或 Gradle 设置。 分析了 Flutter iOS 应用包中 Flutter.framework 和 App.framework 的结构和组成，如果你在使用 Flutter 构建 iOS 应用时有什么疑惑，可以参考阅读。

## 文章

### 🐎 [Best resources for Advanced iOS Developer (Swift)](https://medium.com/flawless-app-stories/best-resources-for-advanced-ios-developer-swift-ade30374593d)

[@AidenRao](https://weibo.com/AidenRao)：作者花了几年时间，收集整理的，对于他很有帮助的 iOS & Swift 文章和视频。涉及架构、组件化、面向协议、调试、SwiftUI 等多个分类。收藏它们并学习，对你会很有帮助。

### 🌟 🐕 [美团 iOS 端开源框架 Graver 在动态化上的探索与实践](https://mp.weixin.qq.com/s/PD9hnWv8B32ZCYj1UokUBA)

[@老驴](https://www.weibo.com/6090610445)：从去年开始，动态化的讨论热度似乎突然冷了下来，究其原因，和 Apple 一再缩紧审核进而导致各大公司选择自用而非开源来规避风险有关。

美团这次就分享了他们的 Graver 框架的背后原理，以及他们对提升渲染性能的一些思考。最后的结果也做到了令人满意，有兴趣在自己产品上想做性能优化的同学不妨一度。

### 🐢 [Device Identifiers and Fingerprinting on iOS](https://nshipster.com/device-identifiers/)

[@JimQ](https://github.com/waz0820)：苹果一直致力于保护用户隐私，在不断地更新识别用户的限制措施，但广告商还是会玩猫捉老鼠的游戏，通过设备的各种基本信息组合或者各种骚操作来识别用户指纹（此处非指手指指纹信息，而是代指可以唯一标识用户的信息）。本文主要介绍了在此背景下 iOS 设备标识符的不断迭代，以及在系统各种限制下仍可能被用于识别用户指纹的各种方式，还是相当涨姿势的。而且作者收集到的主要是国外的方式，国内的厂商肯定也有更多秘而不宣的奇葩操作。

这也是一个不断扑火的过程，此处方歇，彼处又生。文章开头作者通过比较宏大的视角来看待这个问题，把广告追踪比作我们这个时代的怪物，但文章结尾还是抱有希望的，毕竟我们还有一个在致力于保护用户隐私的平台，以及作为技术人员，我们还可以发出自己的声音。

### 🐕 [Dart2.6正式版发布](https://mp.weixin.qq.com/s/9xCrzEmwOf8P9MzpQ4COaQ)

[@CrazyCoderShi](https://github.com/CrazyCoderShi)：近日 Dart 团队又双叒叕 更新了。是的，你没听错。Dart团队在11月初正式发布了 Dart2.6 的正式版本. 最大的亮点是：dart2native。它是现有编译器基础上的一个扩展，能够将Dart程序编译为包含预编译 (AOT) 机器码的 self-contained 的可执行程序。使用 dart2native，您可以使用 Dart 通过 macOS/Windows/Linux 上的命令行创建工具.

## 工具

### [中文独立博客列表](https://github.com/timqian/chinese-independent-blogs)

[@EyreFree](https://weibo.com/eyrefree777)：作者希望创造一个可以连接到中文圈高质量独立博主的工具，在保持独立博客自由的同时，让独立博客们也有一个稳定的被发现的渠道，把独立博客们收集起来，目前初步采用 Markdown 列表的形式。同时作者也通过建立 Telegram 群等方式，把独立博客的创作和读者群体组织起来使大家能够建立联系。当然，如果您认为自己的个人博客质量很不错，也可以尝试提交到该仓库的哟。

### [cocoapods-static-swift-framework](https://github.com/leavez/cocoapods-static-swift-framework)

如果项目中有许多动态库，会增加启动时间，而静态链接则没有这个问题。一个方式支持静态库是使用 Cocoapods，但 Cocoapods 仅支持单个 pod，也就是说 podspec 中的静态库选项仅对该 pod 有效。cocoapods-static-swift-framework 这个插件就是解决这个问题的，只需要一句话就可以将所有 pod 编程静态库！

## 代码

### [Repeat - 轻量级定时器](https://github.com/malcommac/Repeat)
[@五子棋](https://satanwoo.github.io): Repeat 是一个基于 GCD - Grand Central Dispatch 的轻量定时器，在功能上可用于替代 NSTimer。同时针对 NSTimer API 设计繁琐不易用的特点，作者提供了多种简洁的调用方式。整体代码非常精简，值得一读。

### [Swift.org - Swift Numerics](https://swift.org/blog/numerics/)

[@享耳先森](https://github.com/iblacksun)：Swift Standard Library 成员 Steve Canon 创建的开源项目，提供数学计算相关 API，弥补标准库中的不足。

### [SDWebImageSwiftUI](https://github.com/SDWebImage/SDWebImageSwiftUI)

[@四娘](https://kemchenj.github.io/)：SDWebImage 的 SwiftUI 版，基于原版的 SDWebImage 进行封装，之前的生态也可以无缝对接过来，例如各种图片样式的支持等等。

### 🐎 [5 iOS Libraries to Improve and Inspire Your UI](https://medium.com/better-programming/5-ios-libraries-to-improve-and-inspire-your-ui-3a7c768a176c)

[@极速男孩](https://github.com/ztlyyznf001)：五个不同的基于 UICollectionView 的 UI 框架。

### 🐎 [Swiftly - Swift 5.1 references for busy coders](https://swiftly.dev/)

[@水水](https://www.xuyanlan.com)：Swift5.1 的一些基本类型的简单介绍和参考示例代码，有需要的读者可以收藏该地址，以备查阅哦～


## 内推

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

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

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

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

## 关注我们

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

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