关于 swiftui-code-review
swiftui-code-review 是按检查清单审查 SwiftUI 代码的技能。它要求问题附带文件与行号依据,并针对视图组合、状态、性能和无障碍使用对应参考资料。
主要功能
- 01按顺序执行审查关卡
- 02问题标注文件和行号
- 03视图组合检查
- 04状态与性能检查
- 05无障碍审查清单
适用场景
- 01审查仓库中的 SwiftUI 变更
- 02查找状态所有权或视图标识问题
- 03检查无障碍和动态字体支持
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ existential-birds/ beagle --skill swiftui-code-review安装后在 Claude Code 中输入/swiftui-code-review确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/accessibility.mdperformance.mdstate-management.mdview-composition.md详细介绍
SwiftUI 代码审查
快速参考
| 问题类型 | 参考文档 |
|---|---|
| 视图拆分、修饰符、body 复杂度 | references/view-composition.md |
| @State、@Binding、@Observable、@Bindable | references/state-management.md |
| LazyStacks、AnyView、ForEach、标识 | references/performance.md |
| VoiceOver、动态字体、标签、特征 | references/accessibility.md |
关卡(审查工作流)
按顺序完成;不得跳过。
- 界定范围 — 通过条件:每个审查过的文件都以相对于仓库的
.swift路径列出(或者审查明确说明“未打开 / 不适用”并给出理由)。 - 先查参考文档,再进行批评 — 通过条件:对于任何非平凡的 body、修饰符链或包装器所有权问题,你已打开上表中对应的
references/*.md文档,或者用一行说明“无需参考”及理由。 - 基于证据的发现 — 通过条件:每个实质性问题都在提出建议前包含
[FILE:LINE](或明确的行范围);符号 / 代码片段可以补充说明,但不能替代位置锚点;不得仅凭“典型的 SwiftUI”提出缺乏代码依据的问题。
审查清单
- 视图 body 包含的组合元素少于 10 个(应提取子视图)
- 修饰符顺序正确(padding 在 background 之前)
- 视图拥有的对象使用 @StateObject,传入的对象使用 @ObservedObject
- 对 @Observable 使用双向绑定时采用 @Bindable(iOS 17+)
- 对包含 50 个及以上项目的滚动列表使用 LazyVStack/LazyHStack
- 不使用 AnyView(改用 @ViewBuilder 或泛型)
- ForEach 使用稳定的 Identifiable ID(而非数组索引)
- 所有图像 / 图标都设有 accessibilityLabel
- 自定义控件设有 accessibilityAddTraits(.isButton)
- 支持动态字体(不使用固定字体大小)
- 异步任务使用 .task 修饰符(而非 onAppear + Task)
何时加载参考文档
- 复杂的视图 body 或修饰符链 -> view-composition.md
- 属性包装器用法(@State、@Observable)-> state-management.md
- 列表性能或视图标识问题 -> performance.md
- VoiceOver 或无障碍功能实现 -> accessibility.md
审查问题
- 能否将这个大型视图 body 拆分为更小、可复用的 View?
- 修饰符的顺序是否经过考虑?(padding -> background -> frame)
- @StateObject/@ObservedObject 的用法是否符合所有权关系?
- LazyVStack 能否提升此 ScrollView 的性能?
- VoiceOver 用户能否理解此界面?
评论
支持 Markdown