iOS Engineering2014—2022 · 27 篇

Vong 的工程笔记

记录 iOS 开发的性能、稳定性与动画实践,也写下那些最后才被看见的细节。

精选阅读

Selected notes
01

WWDC · 2022

iOS16 Live Activity 初体验

iOS 16 Live Activity 的 API 提炼:锁屏实时活动的接入方式、ActivityKit 的状态更新机制,以及 Beta 阶段需要注意的限制。

WWDC

02 iOS 中资源的条件编译 Debug 专用代码如何不进入线上包?对比 CocoaPods 的 configurations 限制与条件编译两种方案,并说明各自的适用边界。 03 聊聊最近遇到的一个Crash 从一个看似普通的 Swift deinit 场景出发,还原一次难以复现的崩溃,并记录定位过程中对对象生命周期与内存管理的排查思路。 04 WWDC20 10077 - 使用 XCTest 消除动画卡顿 解读 WWDC20 Session 10077:什么是卡顿(Hitches)、帧渲染为什么会延迟,以及如何用 XCTest 在开发阶段量化并消除动画掉帧。 05 一个不规范的 Category 写法导致的“血案” 线上包体积少了 5M、启动快了 300ms,原因却是一个不规范的 Category 写法。用 Instruments 对比 getMethodNoSuper_nolock 耗时,逐步定位到消息发送阶段的膨胀。 06 全新后台任务框架及最佳实践 解读 WWDC 2019 Session 707,梳理 iOS 支持的 9 种后台模式、Background processing 的引入,以及延长后台执行时间的最佳实践。 07 WWDC 2018:使用日志框架测量性能 解读 WWDC 2018 Session 405:用 OSLog 的 signposts API 为异步任务打点,在 Instruments 中定位卡顿究竟由哪段代码引起。 08 WWDC 2018:理解崩溃以及崩溃日志 跟随苹果工程师理解崩溃:崩溃为什么会发生、常见的 CPU 与系统强杀场景,以及如何用符号化与调试工具定位问题。 09 时光的河如海流 2018 年终总结:从美拍直播 SDK 拆分到北京分部,用 YYModel 与 IGListKit 替换 CoreData 方案,以及年底离开美图、南下广州的转折。 10 GMTC 之旅 第一次参加 GMTC 的现场记录,重点整理性能优化专场里 LinkedIn 的组件化、监控体系与 LayoutKit 后台布局实践。