mcpField
S
swiftui-pro

swiftui-pro

github.com/twostraws测试与质量6.4k35.8k 次安装2 天前更新
代码仓库

关于 swiftui-pro

swiftui-pro 是用于审查 Swift 和 SwiftUI 代码的 skill,面向开发者与代码审查流程。它按参考指南检查 API、数据流、导航、无障碍、性能等问题,并要求只报告真实问题。

主要功能

  1. 01检查弃用 API 与现代用法
  2. 02审查视图、动画和数据流
  3. 03检查导航与窗口适配
  4. 04评估无障碍与本地化
  5. 05按文件提供修复建议

适用场景

  1. 01审查 SwiftUI 功能变更
  2. 02定位代码中的无障碍问题
  3. 03检查多窗口尺寸下的布局
  4. 04进行专项性能审查

安装

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

$npx skills add https://github.com/twostraws/swiftui-agent-skill --skill swiftui-pro

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

包含的文件

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

agents/
openai.yaml
assets/
swiftui-pro-icon.svg
references/
accessibility.md
api.md
data.md
design.md
hygiene.md
localization.md
navigation.md
performance-plus.md
performance.md
resizability.md
swift.md
views.md

详细介绍

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

审查结果中包括已弃用的 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/resizability.md 检查窗口调整大小时的布局表现,包括 iPad 多任务处理和折叠式 iPhone Duo。
  7. 使用 references/accessibility.md 验证无障碍合规性,包括动态字体、VoiceOver 和减少动态效果。
  8. 使用 references/localization.md 检查本地化文本、格式和资源处理。
  9. 使用 references/performance.md 确保代码运行高效。
  10. 使用 references/swift.md 快速验证 Swift 代码。
  11. 使用 references/hygiene.md 进行最终代码规范检查。

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

日常审查不要加载 references/performance-plus.md。只有在用户要求深入性能审查时才加载;其中更复杂的更改也有助于排查已确认的性能问题。

核心指令

  • iOS 27 已发布,是新应用的默认部署目标。
  • Xcode 27.1 及相应的 27.1 平台版本均已发布。不要将其 API 误认为尚未发布。
  • iPhone Duo 是一款折叠式 iPhone,配有小尺寸外屏和大尺寸内屏。
  • 应用版本相关建议前,先检查项目的部署目标。仅当部署目标支持较新的运行时 API,或在适当的 #available 检查中使用时,才采用这些 API。保持现有部署目标不变。要求特定 Xcode 版本的功能也需要对应的工具链;运行时检查无法让较旧的 SDK 识别新的声明。
  • 目标是使用现代 Swift 并发功能,面向 Swift 6.4 或更高版本。
  • 作为 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:)——直接绑定到属性,并将 setter 的副作用移到 onChange() 中。

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

// After
TextField("Username", text: $model.username)
    .onChange(of: model.username) {
        model.save()
    }

如果保存操作应随用户名变化而触发(包括程序化更改),请使用 onChange()。赋值与原值相同则不会触发保存。

总结
  1. 无障碍(高): 添加按钮需要添加“添加用户”标签;该符号的默认标签无法说明要添加什么。
  2. 已弃用 API(中): 第 12 行的 foregroundColor() 应替换为 foregroundStyle()。
  3. 数据流(中): 手动创建的绑定较脆弱,也更难维护。

示例结束。

参考资料

  • references/accessibility.md - Dynamic Type、VoiceOver、Reduce Motion 及其他无障碍要求。
  • references/api.md - 更新代码以使用现代 API、替代的弃用代码,以及 iOS 27 工具栏。
  • references/design.md - 构建符合 Apple 人机界面指南的无障碍应用的指导。
  • references/hygiene.md - 让代码顺利编译,并确保其长期可维护。
  • references/localization.md - 可本地化文本、资源包和适应地区设置的呈现方式。
  • references/navigation.md - 使用 NavigationStack/NavigationSplitView 进行导航,以及警报、确认对话框和工作表。
  • references/performance.md - 优化 SwiftUI 代码以实现最高性能。
  • references/performance-plus.md - 深入重构,以缩小视图依赖的范围;仅用于深入性能审查或已诊断的性能问题。
  • references/resizability.md - 更改窗口大小、自适应栏、安全区域和 iPhone Duo 布局。
  • references/data.md - 数据流、共享状态和属性包装器。
  • references/swift.md - 编写现代 Swift 代码的技巧,包括有效使用 Swift Concurrency。
  • references/views.md - 视图结构、组合、动画、重新排序和滑动操作。

评论

支持 Markdown