mcpField
S
swift-ui-architect

swift-ui-architect

github.com/pproenca开发218270 次安装11 周前更新
代码仓库

关于 swift-ui-architect

swift-ui-architect 为采用 iOS 26 和 Swift 6.2 的诊所类 SwiftUI 应用提供模块化 MVVM-C 指南,涵盖分层、状态、导航、依赖注入和数据流规则,适用于开发与审查功能。

主要功能

  1. 01模块化 MVVM-C 分层规则
  2. 02视图身份与状态指南
  3. 03基于协调器的导航规则
  4. 04依赖注入模式
  5. 05异步数据流建议

适用场景

  1. 01设计本地 SPM 功能模块
  2. 02连接协调器与路由外壳
  3. 03审查数据流和错误处理边界

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill swift-ui-architect

安装后在 Claude Code 中输入/swift-ui-architect确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

metadata.json
assets/templates/
_template.md
references/
_sections.md
data-async-init.md
data-cancellation.md
data-combine-avoid.md
data-error-loadable.md
data-task-modifier.md
di-container-composition.md
di-environment-injection.md
di-mock-testing.md
di-protocol-abstraction.md
diff-avoid-anyview.md
diff-closure-skip.md
diff-equatable-views.md
diff-identity-stability.md
diff-printchanges-debug.md
diff-reference-types.md
layer-dependency-rule.md
layer-model-value-types.md
layer-no-view-repository.md
layer-repository-protocol.md
layer-usecase-protocol.md
layer-viewmodel-boundary.md
list-constant-viewcount.md
list-filter-in-model.md
list-id-keypath.md
list-lazy-stacks.md
nav-coordinator-pattern.md
nav-deeplink-support.md

详细介绍

SwiftUI Modular MVVM-C Architecture

面向诊所类 SwiftUI 应用的约束式架构。本技能遵循 iOS 26 / Swift 6.2 诊所架构:在本地 SPM 包中采用模块化 MVVM-C,在 App 目标中放置具体协调器和路由外壳,使用纯净的 Domain 协议,并将 Data 作为唯一的 I/O 层。

Mandated Architecture Stack

┌───────────────────────────────────────────────────────────────┐
│ App target: DependencyContainer, Coordinators, Route Shells   │
├───────────────┬───────────────┬───────────────┬──────────────┤
│ Feature* SPM  │ Feature* SPM  │ Feature* SPM  │ Feature* SPM │
│ View + VM     │ View + VM     │ View + VM     │ View + VM    │
├───────────────────────────────────────────────────────────────┤
│ Data SPM: repository impls, remote/local, retry, sync queue   │
├───────────────────────────────────────────────────────────────┤
│ Domain SPM: models, repository protocols, coordinator protocols│
│ and ErrorRouting/AppError                                      │
├───────────────────────────────────────────────────────────────┤
│ Shared SPMs: DesignSystem, SharedKit                           │
└───────────────────────────────────────────────────────────────┘

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

Clinic Architecture Contract (iOS 26 / Swift 6.2)

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

  • Feature 模块只能导入 Domain + DesignSystem(绝不导入 Data,也绝不导入同级 Feature)
  • App 目标是汇合点,并负责管理 DependencyContainer、具体协调器和路由外壳的连接
  • Domain 保持纯 Swift,并定义模型,以及仓库、*Coordinating、ErrorRouting 和 AppError 契约
  • Data 负责 SwiftData/网络/同步/重试/后台 I/O,并实现 Domain 协议
  • 读写流程默认采用过期后重新验证的读取方式和乐观排队写入
  • ViewModel 直接调用仓库协议(不设默认用例/交互器层)

When to Apply

在以下情况下参考这些指南:

  • 在本地 SPM 包中构建或重构 Feature 模块
  • 连接协调器、路由外壳和依赖容器工厂
  • 为仓库、协调器和错误路由定义 Domain 协议
  • 确保网络、持久化和同步仅由 Data 负责
  • 审查过期后重新验证的读取方式和乐观排队写入

Non-Negotiable Constraints (iOS 26 / Swift 6.2)

  • ViewModel/协调器使用 @Observable,绝不使用 ObservableObject / @Published
  • 不设专门的用例/交互器层:ViewModel 直接调用 Domain 仓库协议
  • 协调器协议位于 Domain;具体协调器在 App 目标中管理 NavigationPath
  • 路由外壳位于 App 目标,并负责管理 .navigationDestination 映射
  • 由 AppError + ErrorRouting 驱动呈现策略;ViewModel 不硬编码全局错误 UI
  • SwiftData / URLSession / 重试 / 同步队列逻辑只能放在 Data 包中

Rule Categories by Priority

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

Quick Reference

1. View Identity & Diffing (CRITICAL)
2. 状态架构(关键)
3. 视图组合(高)
4. 导航与协调(高)
5. 分层架构(高)
6. 依赖注入(中高)
7. 列表与集合性能(中)
8. 异步与数据流(中等)

使用方法

阅读各个参考文件,了解详细说明和代码示例:

参考文件

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

评论

支持 Markdown