ios-navigation

v2026.09.24

Opinionated SwiftUI navigation enforcement for iOS 26 / Swift 6.2 clinic modular MVVM-C apps. Enforces Domain coordinator protocols, App-target `DependencyContainer` + concrete coordinators + route shells, `NavigationPath` ownership, coordinator-owned modal state, deep-link/state-restoration readiness, and stale-while-revalidate/optimistic queued flow compatibility. Use when designing or refactoring clinic navigation flows.

GitHub
Install command
npx skhub add pproenca/ios-navigation
Markdown
SKILL.md

iOS Navigation (Modular MVVM-C)

Opinionated navigation enforcement for SwiftUI apps using the clinic modular architecture. Focus on coordinator + route shell wiring, feature isolation, and resilient push/sheet/deep-link flows.

Non-Negotiable Constraints (iOS 26 / Swift 6.2)

  • @Equatable macro on every navigation view, AnyView never
  • @Observable everywhere, ObservableObject / @Published never
  • App-target coordinators own NavigationPath; route shells own .navigationDestination mappings
  • Coordinator-owned modal state, inline @State booleans for sheets never
  • Domain layer defines coordinator protocols; concrete coordinators stay out of feature modules

Clinic Architecture Contract (iOS 26 / Swift 6.2)

All guidance in this skill assumes the clinic modular MVVM-C architecture:

  • Feature modules import Domain + DesignSystem only (never Data, never sibling features)
  • App target is the convergence point and owns DependencyContainer, concrete coordinators, and Route Shell wiring
  • Domain stays pure Swift and defines models plus repository, *Coordinating, ErrorRouting, and AppError contracts
  • Data owns SwiftData/network/sync/retry/background I/O and implements Domain protocols
  • Read/write flow defaults to stale-while-revalidate reads and optimistic queued writes
  • ViewModels call repository protocols directly (no default use-case/interactor layer)

When to Apply

Reference these guidelines when:

  • Designing navigation hierarchies with NavigationStack or NavigationSplitView
  • Choosing between push, sheet, and fullScreenCover
  • Implementing hero animations, zoom transitions, or gesture-driven dismissals
  • Building multi-step flows (onboarding, checkout, registration)
  • Using @Observable with @Environment and @Bindable for shared navigation state
  • Reviewing code for navigation anti-patterns and modular architecture compliance
  • Adding deep linking, state restoration, or tab persistence
  • Ensuring VoiceOver and reduce motion support for navigation

Rule Categories by Priority

PriorityCategoryImpactPrefix
1Navigation ArchitectureCRITICALarch-
2Navigation Anti-PatternsCRITICALanti-

| 3 | Transition & Animation | HIGH | anim- | | 4 | Modal Presentation | HIGH | modal- | | 5 | Flow Orchestration | HIGH | flow- | | 6 | Navigation Performance | MEDIUM-HIGH | perf- | | 7 | Navigation Accessibility | MEDIUM | ally- | | 8 | State & Restoration | MEDIUM | state- |

Quick Reference

1. Navigation Architecture (CRITICAL)

2. Navigation Anti-Patterns (CRITICAL)

3. Transition & Animation (HIGH)

4. Modal Presentation (HIGH)

5. Flow Orchestration (HIGH)

6. Navigation Performance (MEDIUM-HIGH)

7. Navigation Accessibility (MEDIUM)

8. State & Restoration (MEDIUM)

How to Use

Read individual reference files for detailed explanations and code examples:

Reference Files

FileDescription
references/_sections.mdCategory definitions and ordering
assets/templates/_template.mdTemplate for new rules
metadata.jsonVersion and reference information
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/.experimental/ios-navigation

Default branch

master

Latest commit

cf93c57

Tree SHA

afbb575