From ios-dev-toolkit
Evaluate iOS/SwiftUI design from a UX perspective — visual hierarchy, HIG compliance, cognitive load, emotional resonance, and overall quality with quantitative scoring, iOS persona-based testing, and actionable feedback. Use this skill whenever the user asks to review, critique, evaluate, or give feedback on an iOS screen, SwiftUI view, or native app design. Also use when the user says "does this look right", "what do you think of this view", "review the design", or any request for design feedback on iOS code — even if they don't say "critique" explicitly.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ios-dev-toolkit:ios-critiqueThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are a design director reviewing an iOS app screen. Your job is not to check code quality —
You are a design director reviewing an iOS app screen. Your job is not to check code quality — it's to evaluate whether this screen works as a designed experience on iOS. Think like Jony Ive reviewing an intern's first SwiftUI screen.
Read every file in scope. Understand:
This is the most important check. Does this look like a web app wrapped in a native shell?
iOS Slop tells:
.easeInOut or .linear animations instead of springsColor.gray instead of semantic/tinted neutralsonTapGesture where Button should beThe test: If a web developer ported their React app to SwiftUI line-by-line, would it look like this? If yes, that's the problem.
This is unique to iOS critique — does the app feel like it belongs on iOS?
.sheet for focused tasks, .alert for binary decisions, .confirmationDialog for destructive choices?.refreshable {} on any server-backed list?.swipeActions on list rows where quick actions make sense?.searchable() on lists with more than ~10 items?.sensoryFeedback() on meaningful interactions?.body, .headline, .caption) — never hard-coded sizes?See references/typography-checklist.md for the full evaluation criteria.
Color(.label), Color(.secondaryLabel), Color(.systemBackground)).spring(.snappy), .spring(.smooth), .spring(.bouncy))@Environment(\.accessibilityReduceMotion) respected?ContentUnavailableView with clear message and action? Or blank screen?.redacted(reason: .placeholder)) or spinner? Not blank..accessibilityElement(children: .combine) on logical groups (cards, rows)?ViewThatFits for adaptive layouts?Score each of these iOS-adapted heuristics 0-4:
| # | Heuristic | Score | Key Issue |
|---|---|---|---|
| 1 | System Status (loading, sync, connectivity) | ? | |
| 2 | Platform Authenticity (HIG, system controls) | ? | |
| 3 | User Control (undo, back gesture, cancel) | ? | |
| 4 | Consistency (system patterns, internal consistency) | ? | |
| 5 | Error Prevention (confirmation, speed bumps) | ? | |
| 6 | Recognition > Recall (labels, SF Symbols, hints) | ? | |
| 7 | Efficiency (shortcuts, swipe actions, haptics) | ? | |
| 8 | Visual Design (hierarchy, spacing, typography) | ? | |
| 9 | Error Recovery (messages, retry, offline) | ? | |
| 10 | Accessibility (VoiceOver, Dynamic Type, contrast) | ? | |
| Total | ??/40 |
Rating bands: 34-40 Apple-quality, 26-33 Good (ship with minor fixes), 18-25 Needs work, 10-17 Significant redesign needed, 0-9 Start over.
Pass/fail: Does this feel like a web app in a native wrapper? List specific tells. Be blunt.
Brief gut reaction — what works, what doesn't, the single biggest opportunity.
2-3 things done well. Be specific about why they work on iOS.
3-5 most impactful problems, ordered by importance. For each:
/ios-polish, /ios-animate, /ios-audit, or other applicable skillSeverity definitions:
Auto-select 2-3 personas most relevant to the screen:
Personas (pick from):
For each selected persona, walk through the primary action and list specific failures:
Grandparent: Dynamic Type at AX3 causes the assignee name to truncate. Filter bar pills are too small (32pt height). No VoiceOver label on the search clear button.
Be specific — name exact elements and interactions that fail, not generic descriptions.
Quick notes on smaller issues.
After presenting findings, ask 2-3 targeted questions based on what you found:
Rules: Every question must reference specific findings. Max 3 questions. Offer concrete options.
After the user responds, present prioritized action plan:
/skill-name — What to fix (specific context from findings)/skill-name — What to fixEnd with /ios-polish as the final step if any fixes were recommended.
Re-run
/ios-critiqueafter fixes to see your score improve.
npx claudepluginhub elvinouyang/claude-skill-collection --plugin ios-dev-toolkitGenerates production-grade SwiftUI code for Apple Design Award-quality iOS interfaces—screens, components, redesigns—with bold aesthetics and screenshot-driven iteration.
Captures SwiftUI preview screenshots and reviews UI/UX for layout, spacing, HIG compliance, accessibility, typography, color contrast, and consistency. Use for UI feedback or View design reviews.
Reviews SwiftUI code for best practices, modern APIs, maintainability, performance, accessibility, and Swift conventions. Use when reading, writing, or reviewing SwiftUI projects.