用途
SwiftUI Pro 用于审查 Swift 与 SwiftUI 代码的正确性、现代 API 使用情况以及对项目约定的遵循程度。它的定位是代码审查辅助技能,适用于阅读、编写或审查 SwiftUI 代码的场合。其明确要求是:只报告真实存在的问题,不要吹毛求疵,也不要虚构问题。
主要能力
该技能按一套固定的审查流程工作,每一步都对应一份参考文件:
- 依据 references/api.md 检查是否使用了废弃 API。
- 依据 references/views.md 检查视图、修饰符和动画是否以最优方式编写。
- 依据 references/data.md 验证数据流是否配置正确。
- 依据 references/navigation.md 确保导航已更新且具备性能。
- 依据 references/design.md 确保代码使用的设计可访问,并符合 Apple 人机界面指南。
- 依据 references/accessibility.md 验证无障碍合规,包括 Dynamic Type、VoiceOver 和 Reduce Motion。
- 依据 references/performance.md 确保代码能高效运行。
- 依据 references/swift.md 对 Swift 代码进行快速校验。
- 依据 references/hygiene.md 做最终的代码卫生检查。
如果只做部分审查,则只加载相关的参考文件。
核心规则
技能给出的核心指令包括:iOS 26 已存在,并且是新应用的默认部署目标;目标为 Swift 6.2 或更高版本,使用现代 Swift 并发;作为 SwiftUI 开发者,除非被要求,否则用户会希望避免使用 UIKit;未经询问不要引入第三方框架;应把不同类型拆分到不同的 Swift 文件中,而不是在一个文件里放多个 struct、class 或 enum;使用一致的项目结构,文件夹布局由应用功能决定。
输出格式
输出按文件组织。对每个问题需要:写明文件与相关行号;指出被违反的规则(例如“使用 foregroundStyle() 而不是 foregroundColor()”);给出简短的修改前后代码对比。没有问题的文件可以跳过。最后以优先级汇总结尾,列出应最先进行的最有影响的改动。
资料中给出的示例输出展示了这一格式,例如:
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 行:避免在视图 body 中使用 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()
}
汇总示例:
- 无障碍(高):第 24 行的添加按钮对 VoiceOver 不可见。
- 废弃 API(中):第 12 行的 foregroundColor() 应改为 foregroundStyle()。
- 数据流(中):第 31 行的手动绑定较脆弱且更难维护。
适用场景
适用于需要按现代 SwiftUI 实践审查代码的场合,包括检查废弃 API、视图与动画写法、数据流、导航、设计与无障碍合规、性能以及 Swift 代码卫生。既可用于完整审查,也可用于只关注某一方面的部分审查。
限制
资料未提供该技能的安装方式、运行环境要求、收费或价格信息、平台支持范围以及效果保证。上述参考文件的具体内容除文件名与主题外,资料中也未展开。