SwiftUI架构实施技能Skill swift-ui-architect

这个技能用于定义和实施 iOS 26 / Swift 6.2 下的 SwiftUI 模块化 MVVM-C 架构,提供观点鲜明的架构指导,帮助开发者编写、审查或重构 SwiftUI 应用的结构、导航、依赖注入和仓库边界。关键词:SwiftUI 架构、MVVM-C、iOS 开发、模块化、SPM、依赖注入、状态管理、异步数据流,提升代码可维护性、性能和SEO优化。

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

名称:swift-ui-architect 描述:针对 iOS 26 / Swift 6.2 诊所式模块化 MVVM-C 应用,使用本地 SPM 包边界实施观点鲜明的 SwiftUI 架构。强制执行 App 目标中的 DependencyContainer + 路由外壳、@Observable ViewModels/协调器、Domain 仓库/协调器/错误路由协议、数据拥有的 I/O、陈旧数据重新验证读取和乐观排队同步。适用于编写、审查或重构 SwiftUI 架构、导航、依赖注入或仓库边界时使用。

SwiftUI 模块化 MVVM-C 架构

针对 SwiftUI 诊所式应用的观点鲜明架构实施。此技能与 iOS 26 / Swift 6.2 诊所架构对齐:在本地 SPM 包中的模块化 MVVM-C、App 目标中的具体协调器和路由外壳、纯 Domain 协议,以及 Data 作为唯一的 I/O 层。

强制架构栈

┌───────────────────────────────────────────────────────────────┐
│ App 目标:DependencyContainer、协调器、路由外壳               │
├───────────────┬───────────────┬───────────────┬──────────────┤
│ 功能* SPM     │ 功能* SPM     │ 功能* SPM     │ 功能* SPM    │
│ 视图 + 视图模型 │ 视图 + 视图模型 │ 视图 + 视图模型 │ 视图 + 视图模型 │
├───────────────────────────────────────────────────────────────┤
│ Data SPM:仓库实现、远程/本地、重试、同步队列                  │
├───────────────────────────────────────────────────────────────┤
│ Domain SPM:模型、仓库协议、协调器协议、错误路由/AppError       │
├───────────────────────────────────────────────────────────────┤
│ 共享 SPMs:DesignSystem、SharedKit                            │
└───────────────────────────────────────────────────────────────┘

依赖规则:功能模块仅导入 Domain + DesignSystem。功能从不导入 Data 或其他功能。App 目标是唯一的汇合点。

诊所架构合约 (iOS 26 / Swift 6.2)

本技能中的所有指导均假设诊所模块化 MVVM-C 架构:

  • 功能模块仅导入 Domain + DesignSystem(从不导入 Data,从不导入兄弟功能)
  • App 目标是汇合点,拥有 DependencyContainer、具体协调器和路由外壳接线
  • Domain 保持纯 Swift,定义模型以及仓库、*CoordinatingErrorRoutingAppError 合约
  • Data 拥有 SwiftData/网络/同步/重试/后台 I/O 并实现 Domain 协议
  • 读写流默认使用陈旧数据重新验证读取和乐观排队写入
  • 视图模型直接调用仓库协议(无默认用例/交互层)

何时应用

参考这些指南:

  • 构建或重构本地 SPM 包下的功能模块
  • 接线协调器、路由外壳和依赖容器工厂
  • 定义仓库、协调器和错误路由的 Domain 协议
  • 强制执行仅 Data 拥有网络、持久化和同步
  • 审查陈旧数据重新验证读取和乐观排队写入

非协商约束 (iOS 26 / Swift 6.2)

  • 视图模型/协调器使用 @Observable,从不使用 ObservableObject / @Published
  • 无专用用例/交互层:视图模型直接调用 Domain 仓库协议
  • 协调器协议位于 Domain;具体协调器在 App 目标中拥有 NavigationPath
  • 路由外壳位于 App 目标,拥有 .navigationDestination 映射
  • AppError + ErrorRouting 驱动展示策略;视图模型不硬编码全局错误 UI
  • SwiftData / URLSession / 重试 / 同步队列逻辑仅保留在 Data 包中

按优先级分类的规则类别

优先级 类别 影响 前缀 规则数
1 视图身份与差异 关键 diff- 6
2 状态架构 关键 state- 7
3 视图组合 view- 6
4 导航与协调 nav- 5
5 层架构 layer- 6
6 依赖注入 中高 di- 4
7 列表与集合性能 list- 4
8 异步与数据流 data- 5

快速参考

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

2. 状态架构 (关键)

3. 视图组合 (高)

4. 导航与协调 (高)

5. 层架构 (高)

6. 依赖注入 (中高)

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

8. 异步与数据流 (中)

如何使用

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

参考文件

文件 描述
references/_sections.md 类别定义和排序
assets/templates/_template.md 新规则模板
metadata.json 版本和参考信息