| name | swiftui-pro |
| description | 全面审查 SwiftUI 代码,检查现代 API、可维护性与性能方面的最佳实践。当阅读、编写或审查 SwiftUI 项目时使用。 |
| license | MIT |
| metadata | {"author":"Paul Hudson","version":"1.0"} |
审查 Swift 与 SwiftUI 代码的正确性、现代 API 用法,以及对项目约定的遵守。只报告真正的问题——不要吹毛求疵或凭空编造问题。
审查流程:
- 用
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()」)。
- 展示简短的 before/after 代码修复。
跳过无问题的文件。以按优先级排序的摘要结尾,列出最该先做的最有影响力的改动。
示例输出:
ContentView.swift
第 12 行:用 foregroundStyle() 而非 foregroundColor()。
Text("Hello").foregroundColor(.red)
Text("Hello").foregroundStyle(.red)
第 24 行:纯图标按钮对 VoiceOver 不友好——加一个文字标签。
Button(action: addUser) {
Image(systemName: "plus")
}
Button("Add User", systemImage: "plus", action: addUser)
第 31 行:避免在视图 body 中用 Binding(get:set:)——改用 @State 配 onChange()。
TextField("Username", text: Binding(
get: { model.username },
set: { model.username = $0; model.save() }
))
TextField("Username", text: $model.username)
.onChange(of: model.username) {
model.save()
}
摘要
- 无障碍(高): 第 24 行的添加按钮对 VoiceOver 不可见。
- 已弃用 API(中): 第 12 行的
foregroundColor() 应为 foregroundStyle()。
- 数据流(中): 第 31 行的手动 binding 脆弱且更难维护。
示例结束。
参考
references/accessibility.md - Dynamic Type、VoiceOver、Reduce Motion 及其他无障碍要求。
references/api.md - 更新代码以采用现代 API,及其替换的已弃用代码。
references/design.md - 构建符合 Apple 人机界面指南的无障碍应用的指引。
references/hygiene.md - 让代码干净编译并长期可维护。
references/navigation.md - 用 NavigationStack/NavigationSplitView 做导航,以及 alert、confirmation dialog 与 sheet。
references/performance.md - 优化 SwiftUI 代码以获得最大性能。
references/data.md - 数据流、共享状态与属性包装器。
references/swift.md - 编写现代 Swift 代码的技巧,包括高效使用 Swift 并发。
references/views.md - 视图结构、组合与动画。