# 老司机 iOS 周报 #177 | 2021-10-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) 提出。

## 新闻

### 🌟 [王炸候场中，19 号等你来。](https://mp.weixin.qq.com/s/5k9_up9CdWHVF5J8zzKSHg)

[@Parsifal](https://github.com/ParsifalC)：北京时间 10 月 19 日凌晨 1 点，也就是明天凌晨，苹果将举办新一期的硬件发布会。市场预期苹果将会发布 M1X 的 MacBook Pro，考虑换代的朋友们可以准备起来了~

## 新手推荐

### 🐕 [从《虾票票》带你入门 iOS 系列](https://mp.weixin.qq.com/s/lj1zYvVitD6v7z0gjl13qg)

[@享耳先森](https://github.com/iblacksun)：这是 [Bo2SS](https://bo2ss.ml) 在公众号连载的系列文章，适合想从零入门 iOS 的同学，建议和 Apple 的教程一起阅读，目前连载到第四篇：
- [从《虾票票》带你入门 iOS（1）—— 定位与目标](https://mp.weixin.qq.com/s?__biz=Mzg3MzU3ODIxNg==&mid=2247484201&idx=1&sn=bbc328b36d7bcd5737d6508dcc2a03b2&chksm=cedca8aef9ab21b8bb10a5cc04e349c58b257e6a24886255c19373dac7265bd0dc7356f82636&scene=178&cur_album_id=1755942094336000006#rd)
- [从《虾票票》带你入门 iOS（2）—— iOS 简史与工程创建](https://mp.weixin.qq.com/s?__biz=Mzg3MzU3ODIxNg==&mid=2247484230&idx=1&sn=5570b91784500b2da61e7779d095a302&chksm=cedca8c1f9ab21d72ed3368e9613e25a385ae37ff1840834f6ef5ddd24caeff4ffb2700ff153&scene=178&cur_album_id=1755942094336000006#rd)
- [从《虾票票》带你入门 iOS（3）—— iOS 常用 UI 组件](https://mp.weixin.qq.com/s/lj1zYvVitD6v7z0gjl13qg)
- [从《虾票票》带你入门 iOS（4）—— 调试](https://mp.weixin.qq.com/s?__biz=Mzg3MzU3ODIxNg==&mid=2247484371&idx=1&sn=2f1e8cb8f074114ed548f4da3bc9f77d&chksm=cedca854f9ab2142ad67c2a76ab2774fb26f6fbf14bddedaef093eff753016983b84022de47c&scene=178&cur_album_id=2056906778021298177#rd)

> 自荐人 [Bo2SS](https://bo2ss.ml)

## 文章

### 🌟 🐢 [Telegram-iOS 源码导读](https://hubo.dev/2020-05-07-source-code-walkthrough-of-telegram-ios-part-1/)

[@AidenRao](https://weibo.com/AidenRao)：Telegram 是市场上最受欢迎的即时通讯工具之一，其 MAU 已突破 5 亿。大多数 Telegram 客户端应用程序都是开源的，以证明其安全性，这是一系列关于 Telegram-iOS 源码的文章。

该代码库展示了它对其他 iOS 工程师，会遇到的许多实际工程问题的解决方案。例如可靠的网络、安全存储、复杂的列表 UI、对系统控制器的自定义等。

基础：
[Telegram-iOS: Part 1](https://hubo.dev/2020-05-07-source-code-walkthrough-of-telegram-ios-part-1/)，[Telegram-iOS: Part 2](https://hubo.dev/2020-05-11-source-code-walkthrough-of-telegram-ios-part-2/)，[Telegram-iOS: Part 3](https://hubo.dev/2020-05-15-source-code-walkthrough-of-telegram-ios-part-3/)

协议：
[Telegram-iOS Part 4: MTProto Connections](https://hubo.dev/2020-06-05-source-code-walkthrough-of-telegram-ios-part-4/)

UI 架构：
[Telegram-iOS Part 5: AsyncDisplayKit](https://hubo.dev/2020-06-14-source-code-walkthrough-of-telegram-ios-part-5/)，[Telegram-iOS Part 6: Bubbles](https://hubo.dev/2020-06-22-source-code-walkthrough-of-telegram-ios-part-6/)

内容消费：
[Telegram-iOS Part-7: Link Preview and Instant View](https://hubo.dev/2020-07-12-source-code-walkthrough-of-telegram-ios-part-7/)

> 由 [0x1306a94](https://github.com/0x1306a94) 推荐收录

### 🌟 🐕 [AttributedString——不仅仅让文字更漂亮](https://mp.weixin.qq.com/s/4P8hX7WoBUeUtvBOS4Tx7g)

[@Barney](https://github.com/BarneyZhaoooo)：本文从四个方面介绍了 WWDC 2021 上公布的新功能 AttributedString。

- **AttributedString vs NSAttributedString** 对比
- **基础用法**
- **本地化**
- **Markdown 解析**

### 🐎 [Swift-DocC is Now Open Source](https://swift.org/blog/swift-docc/)
[@Smallfly](https://github.com/iostalks)：WWDC21 苹果发布了一款新的 Swift 文档编译器 Swift-DocC，它能更高效的把代码注释生成文档，以及为代码库生成综合性的在线文档。它的文档 API 支持 Markdown 格式的注释和长文，甚至能够集成图片。

Swift-DocC 被集成在 Xcode 13 的工具链中，帮助用户在代码中写出更详细的文档。现在苹果宣布 Swift-DocC 正式开源了，阅读原文可了解更多特性和用法。

### 🐎 [Apple documentation | canOpenURL:](https://developer.apple.com/documentation/uikit/uiapplication/1622952-canopenurl?language=objc)

[@J_Knight_](https://github.com/knightsj)：来自苹果官方文档：在 iOS 15后，限制了 LSApplicationQueriesSchemes 数量最多为50个。详情可以见文档中的内容。

> 推荐阅读：[LSApplicationQueriesSchemes](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/plist/info/LSApplicationQueriesSchemes)

### 🐕 [The Mysterious CodableWithConfiguration Protocol](https://www.andyibanez.com/posts/the-mysterious-codablewithconfiguration-protocol/)

[@xiaofei86](https://github.com/xiaofei86)：每年苹果都会在 WWDC 为我们带来许多新的 API，但那些不是 “big things” 的更新并不会在 Session 中提及。本篇文章将为你介绍一个有趣新接口 —— CodableWithConfiguration。

如果你已经知道如何使用 Codable，那么你可以非常快速地开始使用这个新的 API。CodableWithConfiguration 允许你做与普通 Codable 完全相同的事情 —— 对来自不同格式的对象进行序列化，例如 JSON。

但 CodableWithConfiguration 允许我们将自定义的配置对象注入可编码类型的编解码过程。你可以根据配置灵活地控制编解码过程，例如：有选择地解码或编码一些键，或者转换它们。这打开了一个充满可能性和更整洁代码的世界，阅读原文了解更多的使用场景。

### 🐎 [Faster Builds with Code Signing Hacks](https://eisel.me/signing)

[@老峰](https://github.com/gesantung)：Code Sign 是为数不多的增量构建与 Clean 构建所需的时间一样的耗时操作之一，而且应用程序的规模越大，需要的时间也越长。本文介绍了在 Debug 环境下通过配置签名算法、签名规则等技巧，加快 Code Sign 速度，提升构建效率的轻量方案。

## 摸鱼周报

[@摸鱼周报 #29](https://mp.weixin.qq.com/s/TVBQgYuycelGBwTaCSfmxQ)：第二十九期摸鱼周报来啦，一起来看下本期概要：

* Tips：关于低电量模式的一些介绍。
* 面试模块：Objective-C 的消息机制（下）。
* 优秀博客：整理了几篇 Swift Tips 的文章。
* 学习资料：gitmoji：一个 GitHub 提交信息的 emoji 指南😎。
* 开发工具：能够使用 Swift 开发安卓应用的工具：SCADE；可视化解析 `.ndjson` 文件的工具：Privacy-Insight。

本期访谈内容独立成篇了，介绍一位拿下微软 iOS 岗位 Offer 的朋友准备和面试的经历，完整内容可以查看：[人物访谈--微软Offer之路](https://mp.weixin.qq.com/s/nh9Rr7lFMy49bEUMWQO3-g)

## 工具

### [tuist](https://tuist.io)

[@红纸](https://github.com/ninaran)：Tuist 是一个命令行工具，其旨在 Xcode 项目的生成、维护和交互。其采用了清单格式来描述项目（使用 Swift 编写），可以彻底解决 xcode 项目文件的代码冲突问题。支持 Cocoapods、Carthage、SPM。

## 代码

### [swift-markdown](https://github.com/apple/swift-markdown)

[@Parsifal](https://github.com/ParsifalC)：苹果官方开源的 Markdown 工具，基于 Swift 编写，参考的是 GitHub 风格解析器。

## 赞助者

虚位以待..

**非常感谢以上赞助者的支持，如果你也有赞助我们的兴趣，欢迎添加微信 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）
