iOS UI Router
You MUST use this skill for ANY iOS UI work including SwiftUI, UIKit, layout, navigation, animations, and design.
When to Use
Use this router when working with:
- SwiftUI views, state, bindings
- UIKit views and constraints
- Layout issues (Auto Layout, SwiftUI layout)
- Navigation (NavigationStack, deep linking)
- Animations and transitions
- Liquid Glass design (iOS 26+)
- Apple Human Interface Guidelines
- UI architecture and patterns
- Accessibility UI issues
Conflict Resolution
ios-ui vs ios-performance: When UI is slow (e.g., "SwiftUI List slow"):
- Try ios-ui FIRST — Domain-specific fixes (LazyVStack, view identity, @State optimization) often solve UI performance in 5 minutes
- Only use ios-performance if domain fixes don't help — Profiling takes longer and may confirm what domain knowledge already knows
Rationale: Jumping to Instruments wastes time when the fix is a known SwiftUI pattern. Profile AFTER trying domain fixes, not before.
Routing Logic
SwiftUI Issues
View not updating →
/skill axiom-swiftui-debugging
Navigation issues →
Performance/lag →
/skill axiom-swiftui-performance
Layout problems →
/skill axiom-swiftui-layout
Stacks/grids/outlines →
/skill axiom-swiftui-containers-ref
Animation issues →
/skill axiom-swiftui-animation-ref
Gesture conflicts →
/skill axiom-swiftui-gestures
Architecture/testability →
/skill axiom-swiftui-architecture
App-level composition →
/skill axiom-app-composition
Search implementation →
/skill axiom-swiftui-search-ref
iOS 26 features →
/skill axiom-swiftui-26-ref
UIKit Issues
Auto Layout conflicts →
/skill axiom-auto-layout-debugging
Animation timing issues →
/skill axiom-uikit-animation-debugging
Design & Guidelines
Liquid Glass adoption →
/skill axiom-liquid-glass
Design decisions →
Typography →
/skill axiom-typography-ref
TextKit/rich text →
Accessibility
VoiceOver, Dynamic Type →
/skill axiom-accessibility-diag
Testing
Decision Tree
- SwiftUI view not updating? → swiftui-debugging
- SwiftUI navigation? → swiftui-nav
- SwiftUI performance/lag? → swiftui-performance
- SwiftUI adaptive layout? → swiftui-layout
- Stacks/grids/outlines (VStack, LazyVGrid, OutlineGroup)? → swiftui-containers-ref
- Feature-level architecture? → swiftui-architecture
- App-level composition (root view, auth flows, scenes)? → app-composition
- Animations/gestures? → swiftui-animation-ref or swiftui-gestures
- SwiftUI search? → swiftui-search-ref
- iOS 26 features? → swiftui-26-ref
- Auto Layout? → auto-layout-debugging
- UIKit animations? → uikit-animation-debugging
- Liquid Glass? → liquid-glass
- HIG compliance? → hig
- Typography? → typography-ref
- TextKit/rich text? → textkit-ref
- Accessibility? → accessibility-diag
Anti-Rationalization
| Thought | Reality |
|---|
| "Simple SwiftUI layout, no need for the layout skill" | SwiftUI layout has 12 gotchas. swiftui-layout covers all of them. |
| "I know how NavigationStack works" | Navigation has state restoration, deep linking, and identity traps. swiftui-nav prevents 2-hour debugging. |
| "It's just a view not updating, I'll debug it" | View update failures have 4 root causes. swiftui-debugging diagnoses in 5 min. |
| "I'll just add .animation() and fix later" | Animation issues compound. swiftui-animation-ref has the correct patterns. |
| "This UI is simple, no architecture needed" | Even small features benefit from separation. swiftui-architecture prevents refactoring debt. |
| "I know how .searchable works" | Search has 6 gotchas (navigation container, isSearching level, suggestion completion). swiftui-search-ref covers all of them. |
Example Invocations
User: "My SwiftUI view isn't updating when I change the model"
→ Invoke:
/skill axiom-swiftui-debugging
User: "How do I implement Liquid Glass in my toolbar?"
→ Invoke:
/skill axiom-liquid-glass
User: "NavigationStack is popping unexpectedly"
→ Invoke:
User: "Should I use MVVM for this SwiftUI app?"
→ Invoke:
/skill axiom-swiftui-architecture
User: "How do I switch between login and main screens?"
→ Invoke:
/skill axiom-app-composition
User: "Where should auth state live in my app?"
→ Invoke:
/skill axiom-app-composition
User: "How do I create a grid layout with LazyVGrid?"
→ Invoke:
/skill axiom-swiftui-containers-ref
User: "What's the difference between VStack and LazyVStack?"
→ Invoke:
/skill axiom-swiftui-containers-ref
User: "How do I display hierarchical data with OutlineGroup?"
→ Invoke:
/skill axiom-swiftui-containers-ref
User: "How do I add search to my SwiftUI list?"
→ Invoke:
/skill axiom-swiftui-search-ref
User: "My search suggestions aren't working"
→ Invoke:
/skill axiom-swiftui-search-ref