2026-06-07
Swift Concurrency 在业务层的边界
把 async/await 用在网络、缓存和 UI 更新之间时,最重要的是明确取消语义、主线程边界和错误传播路径。
iOS · Swift · App Architecture
这里记录 Swift、UIKit、性能优化、组件设计和移动端工程实践。关注真实项目里的取舍:稳定、可读、可测试,也要足够好用。
视图层组织、状态流转、列表性能、组件边界,以及大型页面如何保持清晰。
类型设计、并发模型、错误处理、数据解析和那些能降低维护成本的小习惯。
启动、滚动、内存、动画、网络等待和用户真正能感知到的细节。
Writing
把 async/await 用在网络、缓存和 UI 更新之间时,最重要的是明确取消语义、主线程边界和错误传播路径。
复杂列表不要把所有逻辑塞进 cell。section model、diffable snapshot 和独立事件处理能让页面长期可维护。
冷启动优化不是盲目压缩代码。先拆分初始化时机,再用 Instruments 验证主线程、I/O 和首屏依赖。
接口字段缺失、类型漂移和业务错误应该在请求层被收束,UI 只消费明确的状态和可展示的数据。
Projects
沉淀可复用的列表、弹层、输入控件和状态视图,减少页面之间的重复实现。
UIKit · Auto Layout · Components记录启动耗时、滚动掉帧、内存上涨和网络等待的排查方法。
Instruments · MetricKit · Signpost整理请求封装、模型解析、错误映射和异步状态管理的项目写法。
Swift · Codable · async/awaitAbout
我关注长期运行的移动端代码:页面要快,状态要清楚,接口变化不能轻易拖垮 UI。这个博客会持续沉淀 iOS 工程里的架构、性能和体验细节。