Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Reviews SwiftUI code for deprecated APIs, data flow, navigation, accessibility, and performance issues.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
skills/swiftui-pro/SKILL.md
1---2name: swiftui-pro3description: Comprehensively reviews SwiftUI code for best practices on modern APIs, maintainability, and performance. Use when reading, writing, or reviewing SwiftUI projects.4license: MIT5argument-hint: "[focus area]"6metadata:7author: Paul Hudson8version: "1.0"9---1011Review Swift and SwiftUI code for correctness, modern API usage, and adherence to project conventions. Report only genuine problems - do not nitpick or invent issues.1213Review process:14151. Check for deprecated API using `${CLAUDE_SKILL_DIR}/references/api.md`.161. Check that views, modifiers, and animations have been written optimally using `${CLAUDE_SKILL_DIR}/references/views.md`.171. Validate that data flow is configured correctly using `${CLAUDE_SKILL_DIR}/references/data.md`.181. Ensure navigation is updated and performant using `${CLAUDE_SKILL_DIR}/references/navigation.md`.191. Ensure the code uses designs that are accessible and compliant with Apple's Human Interface Guidelines using `${CLAUDE_SKILL_DIR}/references/design.md`.201. Validate accessibility compliance including Dynamic Type, VoiceOver, and Reduce Motion using `${CLAUDE_SKILL_DIR}/references/accessibility.md`.211. Ensure the code is able to run efficiently using `${CLAUDE_SKILL_DIR}/references/performance.md`.221. Quick validation of Swift code using `${CLAUDE_SKILL_DIR}/references/swift.md`.231. Final code hygiene check using `${CLAUDE_SKILL_DIR}/references/hygiene.md`.2425If doing a partial review, load only the relevant reference files.262728## Core Instructions2930- iOS 26 exists, and is the default deployment target for new apps.31- Target Swift 6.2 or later, using modern Swift concurrency.32- As a SwiftUI developer, the user will want to avoid UIKit unless requested.33- Do not introduce third-party frameworks without asking first.34- Break different types up into different Swift files rather than placing multiple structs, classes, or enums into a single file.35- Use a consistent project structure, with folder layout determined by app features.363738## Output Format3940Organize findings by file. For each issue:41421. State the file and relevant line(s).432. Name the rule being violated (e.g., "Use `foregroundStyle()` instead of `foregroundColor()`").443. Show a brief before/after code fix.4546Skip files with no issues. End with a prioritized summary of the most impactful changes to make first.4748Example output:4950### ContentView.swift5152**Line 12: Use `foregroundStyle()` instead of `foregroundColor()`.**5354```swift55// Before56Text("Hello").foregroundColor(.red)5758// After59Text("Hello").foregroundStyle(.red)60```6162**Line 24: Icon-only button is bad for VoiceOver - add a text label.**6364```swift65// Before66Button(action: addUser) {67Image(systemName: "plus")68}6970// After71Button("Add User", systemImage: "plus", action: addUser)72```7374**Line 31: Avoid `Binding(get:set:)` in view body - use `@State` with `onChange()` instead.**7576```swift77// Before78TextField("Username", text: Binding(79get: { model.username },80set: { model.username = $0; model.save() }81))8283// After84TextField("Username", text: $model.username)85.onChange(of: model.username) {86model.save()87}88```8990### Summary91921. **Accessibility (high):** The add button on line 24 is invisible to VoiceOver.932. **Deprecated API (medium):** `foregroundColor()` on line 12 should be `foregroundStyle()`.943. **Data flow (medium):** The manual binding on line 31 is fragile and harder to maintain.9596End of example.979899## References100101- `${CLAUDE_SKILL_DIR}/references/accessibility.md` - Dynamic Type, VoiceOver, Reduce Motion, and other accessibility requirements.102- `${CLAUDE_SKILL_DIR}/references/api.md` - updating code for modern API, and the deprecated code it replaces.103- `${CLAUDE_SKILL_DIR}/references/design.md` - guidance for building accessible apps that meet Apple's Human Interface Guidelines.104- `${CLAUDE_SKILL_DIR}/references/hygiene.md` - making code compile cleanly and be maintainable in the long term.105- `${CLAUDE_SKILL_DIR}/references/navigation.md` - navigation using `NavigationStack`/`NavigationSplitView`, plus alerts, confirmation dialogs, and sheets.106- `${CLAUDE_SKILL_DIR}/references/performance.md` - optimizing SwiftUI code for maximum performance.107- `${CLAUDE_SKILL_DIR}/references/data.md` - data flow, shared state, and property wrappers.108- `${CLAUDE_SKILL_DIR}/references/swift.md` - tips on writing modern Swift code, including using Swift Concurrency effectively.109- `${CLAUDE_SKILL_DIR}/references/views.md` - view structure, composition, and animation.110