Swift/SwiftUI重构技能:模块化MVVM-C架构Skill swift-refactor

本技能提供详细的 Swift 和 SwiftUI 代码重构指南,专注于模块化 MVVM-C 架构,适用于 iOS 应用开发。包括 API 现代化、状态管理、导航协调等关键方面,帮助开发者提升代码质量和性能。关键词:Swift, SwiftUI, 重构, MVVM-C, 模块化, iOS开发, 代码优化。

移动开发 0 次安装 0 次浏览 更新于 3/18/2026

name: swift-refactor description: 与 iOS 26 / Swift 6.2 临床模块化 MVVM-C 架构(Airbnb + OLX SPM 布局)对齐的 Swift 和 SwiftUI 重构模式。强制使用 @Observable ViewModels/协调器、应用目标 DependencyContainer + 路由外壳、领域仓库/协调器/错误路由协议,以及数据拥有的 I/O 带有陈旧-当-重新验证加上乐观队列同步边界。在将现有 SwiftUI 代码重构到临床架构时使用。

Swift/SwiftUI 重构(模块化 MVVM-C)

全面的重构指南,用于将 Swift/SwiftUI 代码迁移到模块化 MVVM-C,包含本地 SPM 包边界和应用目标组合根连接。

强制架构堆栈

┌───────────────────────────────────────────────────────────────┐
│ 应用目标:DependencyContainer、协调器、路由外壳                │
├───────────────────────────────────────────────────────────────┤
│ 功能模块:视图 + 视图模型(领域 + 设计系统依赖)              │
├───────────────────────────────────────────────────────────────┤
│ 数据包:仓库、远程/本地存储、同步、重试                       │
├───────────────────────────────────────────────────────────────┤
│ 领域包:模型、仓库/协调器/错误协议                             │
└───────────────────────────────────────────────────────────────┘

依赖规则:功能模块从不导入 数据 且从不导入兄弟功能。

临床架构合约(iOS 26 / Swift 6.2)

本技能中的所有指南假设临床模块化 MVVM-C 架构:

  • 功能模块仅导入 领域 + 设计系统(从不导入 数据,从不导入兄弟功能)
  • 应用目标是汇聚点,拥有 DependencyContainer、具体协调器和路由外壳连接
  • 领域 保持纯 Swift,定义模型加仓库、*协调错误路由应用错误 合约
  • 数据 拥有 SwiftData/网络/同步/重试/后台 I/O 并实现领域协议
  • 读/写流默认为陈旧-当-重新验证读取和乐观队列写入
  • 视图模型直接调用仓库协议(无默认用例/交互器层)

何时应用

参考这些指南当:

  • 从已弃用的 SwiftUI API 迁移(ObservableObject、NavigationView、旧 onChange)
  • 重构状态管理以使用 @Observable 视图模型
  • 添加 @Equatable 差异到视图以提高性能
  • 分解大视图到最多 10 节点的主体
  • 重构导航到协调器 + 路由外壳模式
  • 重构到领域/数据/功能/应用包边界
  • 通过 DependencyContainer 设置依赖注入
  • 改进列表/集合滚动性能
  • 替换手动任务管理与 .task(id:) 和可取消加载

不可协商的约束(iOS 26 / Swift 6.2)

  • @Observable 视图模型/协调器,ObservableObject / @Published 从不
  • NavigationStack 由应用目标路由外壳和协调器拥有
  • @Equatable 宏在每个视图上,AnyView 从不
  • 领域定义仓库/协调器/错误路由协议;无框架耦合 I/O
  • 无专用用例/交互器层;视图模型直接调用仓库协议
  • 视图从不直接访问仓库

规则类别按优先级

优先级 类别 影响 前缀 规则
1 视图身份与差异 关键 diff- 4
2 API 现代化 关键 api- 7
3 状态架构 关键 state- 6
4 视图组合 view- 7
5 导航与协调 nav- 5
6 层架构 layer- 5
7 架构模式 arch- 5
8 依赖注入 中-高 di- 2
9 类型安全与协议 中-高 type- 4
10 列表与集合性能 list- 4
11 异步与数据流 data- 3
12 Swift 语言基础 swift- 8

快速参考

1. 视图身份与差异(关键)

2. API 现代化(关键)

3. 状态架构(关键)

4. 视图组合(高)

5. 导航与协调(高)

6. 层架构(高)

7. 架构模式(高)

8. 依赖注入(中-高)

9. 类型安全与协议(中-高)

10. 列表与集合性能(中)

11. 异步与数据流(中)

12. Swift 语言基础(中)

如何使用

阅读个别参考文件以获取详细解释和代码示例:

参考文件

文件 描述
references/_sections.md 类别定义和排序
assets/templates/_template.md 新规则模板