mcpField
S
swiftui-review

swiftui-review

github.com/fradser测试与质量59688 次安装5 周前更新
代码仓库

关于 swiftui-review

面向 Swift 和 SwiftUI 开发者的代码审查技能,依据项目指南检查代码,并按文件给出可执行的问题与修复建议。涵盖 API、架构、无障碍、数据流、导航、性能和代码规范。

主要功能

  1. 01检查已弃用 API
  2. 02审查 SwiftUI 视图与动画
  3. 03检查数据流和导航
  4. 04审查无障碍与性能
  5. 05按文件提供问题及修复代码

适用场景

  1. 01合并前审查 SwiftUI 变更
  2. 02检查无障碍和动态字体支持
  3. 03审计架构与代码规范

安装

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

$npx skills add https://github.com/fradser/dotclaude --skill swiftui-review

安装后在 Claude Code 中输入/swiftui-review确认已加载。

包含的文件

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

references/
accessibility.md
api.md
clean-architecture.md
data.md
design.md
hygiene.md
navigation.md
performance.md
swift.md
views.md

详细介绍

检查 Swift 和 SwiftUI 代码的正确性、现代 API 用法以及是否遵循项目约定。只报告确实存在的问题——不要吹毛求疵,也不要凭空捏造问题。

审查流程:

  1. 使用 references/api.md 检查是否使用了已弃用的 API。
  2. 使用 references/views.md 检查视图、修饰符和动画的写法是否合理。
  3. 使用 references/data.md 验证数据流配置是否正确。
  4. 使用 references/navigation.md 确保导航已更新且性能良好。
  5. 使用 references/design.md 确保代码采用的设计易于访问,并符合 Apple 的人机界面指南。
  6. 使用 references/accessibility.md 验证辅助功能合规性,包括动态字体、VoiceOver 和减弱动态效果。
  7. 使用 references/performance.md 确保代码能够高效运行。
  8. 使用 references/swift.md 对 Swift 代码进行快速验证。
  9. 使用 references/hygiene.md 进行最终代码规范检查。
  10. 对于架构审查,使用 references/clean-architecture.md 检查是否符合整洁架构。

如果只进行部分审查,只加载相关参考文件。

核心指令

重要:报告问题前,必须加载并应用所有适用的参考文件(references/*.md)。这些文件中标记为 MUST 或 Never 的规则不可协商——发现任何违反项都必须标出;仅在文件没有相关问题时才跳过该文件。

  • iOS 26 已发布,是新应用的默认部署目标。
  • 使用 Swift 6.2 或更高版本,并采用现代 Swift 并发机制。
  • 作为 SwiftUI 开发者,除非用户提出要求,否则应避免使用 UIKit。
  • 未经事先询问,不要引入第三方框架。
  • 将不同类型拆分到不同的 Swift 文件中,而不是把多个结构体、类或枚举放在同一个文件里。
  • 保持项目结构一致,并根据应用功能组织文件夹布局。

输出格式

按文件整理审查结果。每个问题:

  1. 指出文件和相关行号。
  2. 指明违反的规则(例如,“使用 foregroundStyle() 替代 foregroundColor()”)。
  3. 给出简短的修复前后代码示例。

没有问题的文件不必列出。最后按优先级总结最重要的修改项。

示例输出:

ContentView.swift

第 12 行:使用 foregroundStyle() 替代 foregroundColor()。

// Before
Text("Hello").foregroundColor(.red)

// After
Text("Hello").foregroundStyle(.red)

第 24 行:仅含图标的按钮不利于 VoiceOver 使用——请添加文本标签。

// Before
Button(action: addUser) {
    Image(systemName: "plus")
}

// After
Button("Add User", systemImage: "plus", action: addUser)

第 31 行:避免在视图主体中使用 Binding(get:set:)——改用 @State 和 onChange()。

// Before
TextField("Username", text: Binding(
    get: { model.username },
    set: { model.username = $0; model.save() }
))

// After
TextField("Username", text: $model.username)
    .onChange(of: model.username) {
        model.save()
    }
总结
  1. 辅助功能(高): 第 24 行的添加按钮对 VoiceOver 不可见。
  2. 已弃用 API(中): 第 12 行的 foregroundColor() 应替换为 foregroundStyle()。
  3. 数据流(中): 第 31 行的手动绑定较为脆弱,也更难维护。

示例结束。

参考资料

  • references/accessibility.md - 动态字体、VoiceOver、减弱动态效果及其他辅助功能要求。
  • references/api.md - 更新代码以使用现代 API,以及被替代的弃用代码。
  • references/clean-architecture.md - 整洁架构模式、分层、MVVM、依赖注入和现代 SwiftUI 架构。
  • references/design.md - 构建易于访问且符合 Apple 人机界面指南的应用的指导。
  • references/hygiene.md - 确保代码干净编译并长期易于维护。
  • references/navigation.md - 使用 NavigationStack/NavigationSplitView 进行导航,以及警告、确认对话框和工作表。
  • references/performance.md - 优化 SwiftUI 代码以获得最佳性能。
  • references/data.md - 数据流、共享状态和属性包装器。
  • references/swift.md - 编写现代 Swift 代码的技巧,包括有效使用 Swift 并发机制。
  • references/views.md - 视图结构、组合与动画。

评论

支持 Markdown