Swiftui Pro

twostraws/SwiftUI-Agent-Skill/swiftui-pro/skills/swiftui-pro

作者 twostrawsf9800713b24580bc444931949aad4519128605e8MIT5.1K 个星标收录于 2026年10月9日更新于 2026年10月9日仓库昨天更新

Comprehensively reviews SwiftUI code for best practices on modern APIs, maintainability, and performance. Use when reading, writing, or reviewing SwiftUI projects.

AI 生成的概览

审查 Swift 与 SwiftUI 代码,关注现代 API、数据流、无障碍、性能与可维护性。

功能
该技能引导代理对 Swift 与 SwiftUI 代码进行结构化审查,检查已弃用 API、视图与动画质量、数据流、导航、设计、可调整尺寸、无障碍、本地化、性能以及代码整洁度。它按文件组织审查结果,每条指出所违反的规则并给出简短的前后代码修正,最后以优先级摘要列出最应优先处理的改动。部分审查时只加载相关参考文件。
适用场景
适用于阅读、编写或审查 SwiftUI 项目,并希望获得关于现代 API、可维护性和性能的最佳实践反馈时。也适合有针对性的深度性能审查或排查已确认的性能问题。
运行要求
无需脚本,仅包含说明与参考 Markdown 文件。代理会读取随附的 references 目录。审查假定熟悉 Swift 与 SwiftUI 项目及其部署目标。

Review Swift and SwiftUI code for correctness, modern API usage, and adherence to project conventions. Report only genuine problems – do not nitpick or invent issues.

Include deprecated API in review findings. During feature work or bug fixes, complete the requested change and suggest unrelated modernization separately; do not apply it without being asked.

Review process:

  1. Check for deprecated API using ${CLAUDE_SKILL_DIR}/references/api.md.
  2. Check that views, modifiers, and animations have been written optimally using ${CLAUDE_SKILL_DIR}/references/views.md.
  3. Validate that data flow is configured correctly using ${CLAUDE_SKILL_DIR}/references/data.md.
  4. Ensure navigation is updated and performant using ${CLAUDE_SKILL_DIR}/references/navigation.md.
  5. Ensure the code uses designs that are accessible and compliant with Apple's Human Interface Guidelines using ${CLAUDE_SKILL_DIR}/references/design.md.
  6. Review layout behavior as windows resize, including iPad multitasking and folding iPhone Duo, using ${CLAUDE_SKILL_DIR}/references/resizability.md.
  7. Validate accessibility compliance including Dynamic Type, VoiceOver, and Reduce Motion using ${CLAUDE_SKILL_DIR}/references/accessibility.md.
  8. Check localized text, formatting, and resource handling using ${CLAUDE_SKILL_DIR}/references/localization.md.
  9. Ensure the code is able to run efficiently using ${CLAUDE_SKILL_DIR}/references/performance.md.
  10. Quick validation of Swift code using ${CLAUDE_SKILL_DIR}/references/swift.md.
  11. Final code hygiene check using ${CLAUDE_SKILL_DIR}/references/hygiene.md.

If doing a partial review, load only the relevant reference files.

Keep ${CLAUDE_SKILL_DIR}/references/performance-plus.md out of routine reviews. Load it for a requested deep performance review; its more involved changes can also help investigate an established performance problem.

Core Instructions

  • iOS 27 exists, and is the default deployment target for new apps.
  • Xcode 27.1 and the corresponding 27.1 platform releases are available. Do not dismiss their APIs as speculative.
  • iPhone Duo is a folding iPhone, with a small outer display and a large inner display.
  • Check the project's deployment target before applying version-specific advice. Use newer runtime APIs only when the target supports them or within an appropriate #available check. Keep the existing target unchanged. Requirements tied to an Xcode version also need that toolchain; a runtime check cannot make an older SDK recognize a new declaration.
  • Target Swift 6.4 or later, using modern Swift concurrency.
  • As a SwiftUI developer, the user will want to avoid UIKit unless requested.
  • Do not introduce third-party frameworks without asking first.
  • Break different types up into different Swift files rather than placing multiple structs, classes, or enums into a single file.
  • Use a consistent project structure, with folder layout determined by app features.

Output Format

Organize findings by file. For each issue:

  1. State the file and relevant line(s).
  2. Name the rule being violated (e.g., "Use foregroundStyle() instead of foregroundColor()").
  3. Show a brief before/after code fix.

Skip files with no issues. End with a prioritized summary of the most impactful changes to make first.

Example output:

ContentView.swift

Line 12: Use foregroundStyle() instead of foregroundColor().

swift
// BeforeText("Hello").foregroundColor(.red)
// AfterText("Hello").foregroundStyle(.red)

Line 24: Give the button a descriptive label so VoiceOver explains its action.

swift
// BeforeButton(action: addUser) {    Image(systemName: "plus")}
// AfterButton("Add User", systemImage: "plus", action: addUser)

Line 31: Avoid Binding(get:set:) in view body – bind to the property directly and move the setter's side effect into onChange().

swift
// BeforeTextField("Username", text: Binding(    get: { model.username },    set: { model.username = $0; model.save() }))
// AfterTextField("Username", text: $model.username)    .onChange(of: model.username) {        model.save()    }

Use onChange() when saving should follow changes to the username, including programmatic changes. Equal-value assignments will not trigger a save.

Summary

  1. Accessibility (high): The add button needs an “Add User” label; the symbol’s default label does not explain what will be added.
  2. Deprecated API (medium): foregroundColor() on line 12 should be foregroundStyle().
  3. Data flow (medium): The manual binding on line 31 is fragile and harder to maintain.

End of example.

References

  • ${CLAUDE_SKILL_DIR}/references/accessibility.md - Dynamic Type, VoiceOver, Reduce Motion, and other accessibility requirements.
  • ${CLAUDE_SKILL_DIR}/references/api.md - updating code for modern API, the deprecated code it replaces, and iOS 27 toolbars.
  • ${CLAUDE_SKILL_DIR}/references/design.md - guidance for building accessible apps that meet Apple's Human Interface Guidelines.
  • ${CLAUDE_SKILL_DIR}/references/hygiene.md - making code compile cleanly and be maintainable in the long term.
  • ${CLAUDE_SKILL_DIR}/references/localization.md - localizable text, resource bundles, and locale-aware presentation.
  • ${CLAUDE_SKILL_DIR}/references/navigation.md - navigation using NavigationStack/NavigationSplitView, plus alerts, confirmation dialogs, and sheets.
  • ${CLAUDE_SKILL_DIR}/references/performance.md - optimizing SwiftUI code for maximum performance.
  • ${CLAUDE_SKILL_DIR}/references/performance-plus.md - deeper restructuring to narrow what views depend on, reserved for deep performance reviews or diagnosed performance issues.
  • ${CLAUDE_SKILL_DIR}/references/resizability.md - changing window sizes, adaptive bars, safe areas, and iPhone Duo layouts.
  • ${CLAUDE_SKILL_DIR}/references/data.md - data flow, shared state, and property wrappers.
  • ${CLAUDE_SKILL_DIR}/references/swift.md - tips on writing modern Swift code, including using Swift Concurrency effectively.
  • ${CLAUDE_SKILL_DIR}/references/views.md - view structure, composition, animation, reordering, and swipe actions.

来源与署名

来源:twostraws/SwiftUI-Agent-Skill位于swiftui-pro/skills/swiftui-pro提交f980071

许可证: MIT

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架