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 → /skill axiom-swiftui-nav
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
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 → /skill axiom-hig
Typography → /skill axiom-typography-ref
TextKit/rich text → /skill axiom-textkit-ref
Accessibility
VoiceOver, Dynamic Type → /skill axiom-accessibility-diag
Testing
UI test flakiness → /skill axiom-ui-testing
Decision Tree
User asks about UI ├─ SwiftUI? │ ├─ View not updating? → swiftui-debugging │ ├─ Navigation? → swiftui-nav │ ├─ Performance? → swiftui-performance │ ├─ Layout (adaptive)? → swiftui-layout │ ├─ Stacks/grids/outlines? → swiftui-containers-ref │ │ (VStack, HStack, LazyVGrid, LazyHGrid, OutlineGroup, DisclosureGroup) │ ├─ Feature-level architecture? → swiftui-architecture │ ├─ App-level composition? → app-composition │ │ (root view switching, auth flows, scene lifecycle, modularization) │ └─ Animations/gestures? → swiftui-animation-ref or swiftui-gestures │ ├─ UIKit? │ ├─ Auto Layout? → auto-layout-debugging │ └─ Animations? → uikit-animation-debugging │ ├─ Design guidelines? │ ├─ Liquid Glass? → liquid-glass │ ├─ HIG compliance? → hig │ └─ Typography? → typography-ref │ └─ Accessibility? → accessibility-diag
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: /skill axiom-swiftui-nav
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