核心用法
SwiftUI View Refactor 是一个代码规范与重构指导技能,专注于优化 SwiftUI 视图文件的结构与架构模式。其核心工作流程包括五个步骤:首先按照既定规则重新排序视图属性(Environment → let → @State → init → body → helpers);其次推广 MV(Model-View)模式,将轻量级编排逻辑保留在视图层,通过 @State、、@Environment、、@Query、、task 和 onChange 实现状态管理;第三,若已存在 ViewModel,则将其改为非可选的 @State 并在 init 中初始化;第四,确保正确使用 Observation 框架,根视图用 @State 存储 @Observable` 对象;最后保证行为不变,仅调整结构而非业务逻辑。
显著优点
该技能的最大价值在于其权威性——源自 Thomas Ricouard(@Dimillian),他是 BlueSky 客户端 IcySky 和 Medium iOS 应用的核心开发者,内容与其公开发表的技术文章 "SwiftUI in 2025: Forget MVVM" 一脉相承,与 Apple WWDC 推荐的数据流模式高度一致。其次,它提供了可操作的规范:明确的属性排序规则、清晰的代码拆分策略(何时用 computed property、何时提取为独立 View 类型)、以及具体的初始化模式示例。第三,它拥抱现代 SwiftUI:积极推广 Observation 框架,减少不必要的 ViewModel 层,使代码更简洁。最后,所有建议都配有实用的代码示例,开发者可直接参照应用。
潜在缺点与局限性
该技能主要针对较新的 SwiftUI 项目,对于仍在使用 Combine 或早期 ObservableObject 模式的老项目,迁移成本需要考虑。其次,它假设开发者已理解 SwiftUI 的数据流原理,初学者可能需要额外学习 Observation 框架的基础知识。第三,"MV 优先于 MVVM" 的观点虽符合 Apple 最新方向,但与部分团队现有架构决策可能冲突,需要团队层面的共识。此外,技能本身不包含自动化重构工具,所有修改需开发者手动执行,大规模重构时效率有限。
适合的目标群体
- 中高级 iOS 开发者:已具备 SwiftUI 基础,希望代码符合社区最新最佳实践
- 团队技术负责人:需要为团队制定 SwiftUI 代码规范
- 从 UIKit 迁移到 SwiftUI 的开发者:希望避免过度工程化,采用更原生的 SwiftUI 模式
- 维护遗留 SwiftUI 代码库的开发者:需要系统性地清理和规范化视图层
使用风险
该技能本身无技术风险——仅提供 Markdown 文档形式的指导,不包含任何可执行代码。常规风险主要在于应用层面:大规模重构前务必使用版本控制(Git),以便回滚;团队采用前建议在小范围试点,确保与现有架构兼容;重构时应配合单元测试或 UI 测试,防止结构调整意外破坏功能。性能方面,遵循该指南通常会带来更优的视图更新效率(得益于 Observation 框架的精准追踪),但极端复杂的视图拆分可能增加视图层级,需结合实际场景权衡。