iOS Design Review
Validate SwiftUI/UIKit code against Apple Human Interface Guidelines.
When to Use
-
After generating SwiftUI components
-
Before submitting iOS code for review
-
Auditing existing iOS UI code
-
Checking accessibility compliance
Review Checklist
- Colors & Theming
-
Uses semantic colors (Color.primary , Color(.systemBackground) )
-
No hardcoded hex colors
-
Works in both Light and Dark mode
-
High contrast mode support
- Typography
-
Uses system fonts (San Francisco)
-
Supports Dynamic Type
-
Proper text styles (.headline , .body , .caption )
-
No fixed font sizes for body text
- Touch Targets
-
Minimum 44×44 points for interactive elements
-
Adequate spacing between tappable items (12-24pt)
-
No gesture conflicts with system gestures
- Accessibility
-
VoiceOver labels on icon-only buttons
-
accessibilityElement(children: .combine) for grouped content
-
accessibilityHidden(true) for decorative elements
-
Meaningful accessibility hints where needed
- Navigation
-
Tab bar for 2-5 primary destinations (not actions)
-
Navigation titles present
-
Back button behavior correct
-
Modal dismiss patterns (swipe, X button)
- SF Symbols
-
Uses SF Symbols over custom icons where possible
-
Correct rendering mode (monochrome/hierarchical/palette)
-
Symbols scale with Dynamic Type
- Layout
-
Safe area respected
-
Adapts to different screen sizes
-
Proper keyboard avoidance
-
No content clipping
Review Output Format
HIG Compliance Review
File: Views/SettingsView.swift
Issues Found
Critical
- Line 45: Touch target too small (32×32pt)
Fix: Add
.frame(minWidth: 44, minHeight: 44)
Warnings
- Line 23: Hardcoded color
Color(hex: "#FF5733")Fix: UseColor.accentColoror semantic color
Suggestions
- Line 67: Consider adding accessibilityLabel to icon button
Summary
- Critical: 1
- Warnings: 1
- Suggestions: 1
- Overall: Needs fixes before shipping
Common Issues
Color Issues
// ❌ Problem Text("Hello").foregroundColor(Color(hex: "#333333"))
// ✅ Fix Text("Hello").foregroundStyle(.primary)
Touch Target Issues
// ❌ Problem Button { } label: { Image(systemName: "plus") }
// ✅ Fix Button { } label: { Image(systemName: "plus") .frame(minWidth: 44, minHeight: 44) }
Accessibility Issues
// ❌ Problem Button { delete() } label: { Image(systemName: "trash") }
// ✅ Fix Button { delete() } label: { Image(systemName: "trash") } .accessibilityLabel("Delete item")
Usage
User: Review this SwiftUI view for HIG compliance [pastes code]
Claude: [Runs checklist against code]
- Identifies issues by category
- Provides specific line numbers
- Suggests fixes with code examples
Related Skills
-
ios-swiftui-generator — Generate compliant code
-
ios-hig-reference — Full HIG reference