老司机 iOS 周报 #102 | 2020-02-24

4,010 阅读5分钟

老司机 iOS 周报,只为你呈现有价值的信息。

你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。

新闻

Swift Playgrounds For Mac

@张嘉夫:Swift Playgrounds 最初于 2016 年在 iPad 上发布,目的是为普通用户提供一种友好的方式来学习 Swift 语言。现在使用 Catalyst 技术制作的 Mac 版本已经发布,在 Mac App Store 上可以免费下载,大小为 155.1 MB,需要 macOS 10.15.3 Catalina 或更新的操作系统。

文章

🐎 从探索到落地,手淘引入 Swift “历险记”

@JimQ:本文还原了手淘 iOS APP 历时一年将 Swift 语言从调研到基础设施建设,再到顺利落地业务的全过程,其推进的策略、所遇到的问题及其解决方案,对国内还在踌躇如何落地 Swift 的同学具有很好的借鉴意义。

🐎 iOS Performance tips you probably didn't know

@EyreFree:作者为前苹果工程师,有多年苹果系统库和系统应用开发经验。文中介绍了 UILabel 和 tag 在资源占用与性能上的一些问题,并且讨论了多线程编程时的一些影响执行效率的细节。文中也提到了某些控件的缓存会在收到 didReceiveMemoryWarning 时进行释放(例如 UICollectionView 的重用区),开发者不必对 App 的高内存使用率耿耿于怀,模拟“内存警告”可以观察这一现象。建议对性能优化感兴趣的朋友阅读。

🐕 有赞iOS-基于二进制的编译提效策略

@莲叔:iOS 从推出至今已经超过 10 年,越来越多的 iOS 工程都变得十分庞大。组件二进制化变为越来越主流的优化方案,能够显著减少全量编译的耗时。这篇文章介绍了有赞在优化过程中的一些心得。其中包含了一些比较零碎的优化手段,如 Xcode 编译优化,CCache 优化等,也包含一套相对完成的 Pod 二进制方案的介绍。整体还算比较体系,比较适合不愿意投入太多时间整理架构的中小型公司参考。大公司往往都有自己的打包架构,不一定适用。

🐕 Standard Library Preview Package

@AidenRao:Swift 团队针对 Swift 迭代,添加标准库的预览版,提供给开发者使用。Swift 团队在正式版本之前,可以通过预览版的使用反馈,来做 API 的调整。

工具

🐎 URLFormat

@极速男孩:这是在 [vapor] (github.com/vapor/vapor) 中基于 common-parsers 的不需要使用正则并且类型安全的来对 url 请求进行匹配的工具。

🐕 Swift 编写的 iOS 端抓包工具(Knot)

@老峰:已支持的动能:

  • Http、Https 流量抓取
  • 流量解析、多格式导出、过程分析
  • 可抓取局域网内其他设备与外界通信数据
  • CA 证书安装、导出
  • 中英文国际化
  • 过滤规则配置、导出

🐕 swift-doc - Generates documentation for Swift projects

@水水:swift-doc 可以为你的 Swift 项目生成文档,能给定 Swift 文件的目录,为每个类、结构、枚举和协议以及顶级类型别名、函数和变量生成 CommonMark(Markdown)文件。 swift-doc 支持以命令的形式安装和使用在 MacOS 和 Linux 系统上。 虽然目前输出仅限于 CommonMark,但计划同时支持 HTML 和其他格式。该项目正在积极开发中,预计在首次稳定发布前会有显著变化。

代码

🌟 🐕 开源 | Objective-C & Swift 最轻量级 Hook 方案

@zvving:字节跳动技术团队带来一套基于消息转发机制的 instance 粒度的轻量级 hook 方案:SDMagicHook。

相较于 StingerAspects,SDMagicHook 只支持实例纬度的 hook,函数替换、消息调度等过程都在 objc 层面处理,框架实现更轻量,源码更易懂。本文详细描述了其实现过程,推荐阅读学习。

swift-checkit

@享耳先森:这个库起源于作者遇到一个 bug:自定义了一个 collection,但对 index 处理和 SDK 行为不一致。所以作者写了这个库,面向协议的接口抽象了测试用例,一行代码即可完成协议 Conformance 的测试。

🌟 🐕 Flutter:图像的爆炸动画💥

@CrazyCoderShi:文章展示了如何使用 Flutter 粒子动画完成一个效果爆炸的动画效果,效果流畅.

Thinking in SwiftUI

@老驴:objc.io 又要出新书了!这次是 SwiftUI 相关的书。根据目前的简介,本书将会专注在帮助大家从面向对象编程的思维转变成声明式编程。

现在预购的话可以 early access 本书的内容,不过,估计喵神之后也会出对应的中文版,如果想看中文版的童鞋可以再等等。

内推

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

如果你想找工作,点这里:www.yuque.com/iosalliance…

如果你想招人,点这里:www.yuque.com/iosalliance…

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

关注我们

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

同时也支持了 RSS 订阅:github.com/SwiftOldDri…

说明

🚧 表示需翻墙,🌟 表示编辑推荐

预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)