From swiftui-pro
Reviews SwiftUI code for best practices, modern APIs, maintainability, performance, accessibility, and Swift conventions. Use when reading, writing, or reviewing SwiftUI projects.
How this skill is triggered — by the user, by Claude, or both
Slash command
/swiftui-pro:swiftui-proThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
Review process:
${CLAUDE_SKILL_DIR}/references/api.md.${CLAUDE_SKILL_DIR}/references/views.md.${CLAUDE_SKILL_DIR}/references/data.md.${CLAUDE_SKILL_DIR}/references/navigation.md.${CLAUDE_SKILL_DIR}/references/design.md.${CLAUDE_SKILL_DIR}/references/accessibility.md.${CLAUDE_SKILL_DIR}/references/performance.md.${CLAUDE_SKILL_DIR}/references/swift.md.${CLAUDE_SKILL_DIR}/references/hygiene.md.If doing a partial review, load only the relevant reference files.
Organize findings by file. For each issue:
foregroundStyle() instead of foregroundColor()").Skip files with no issues. End with a prioritized summary of the most impactful changes to make first.
Example output:
Line 12: Use foregroundStyle() instead of foregroundColor().
// Before
Text("Hello").foregroundColor(.red)
// After
Text("Hello").foregroundStyle(.red)
Line 24: Icon-only button is bad for VoiceOver - add a text label.
// Before
Button(action: addUser) {
Image(systemName: "plus")
}
// After
Button("Add User", systemImage: "plus", action: addUser)
Line 31: Avoid Binding(get:set:) in view body - use @State with onChange() instead.
// 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()
}
foregroundColor() on line 12 should be foregroundStyle().End of example.
${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, and the deprecated code it replaces.${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/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/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, and animation.npx claudepluginhub twostraws/swiftui-agent-skill --plugin swiftui-proReviews SwiftUI and Swift code for modern APIs, best practices, performance, accessibility, data flow, navigation, and Clean Architecture.
Reviews SwiftUI code for view composition, state management (@State, @Binding, @Observable), performance, and accessibility. Use for .swift files with SwiftUI views or UI code.
Builds, reviews, and refactors SwiftUI code with guidance on state management, view composition, performance, accessibility, and iOS 26+ Liquid Glass styling.