Skillshub ios-navigation

iOS Navigation (Modular MVVM-C)

install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/pproenca/dot-skills/ios-navigation" ~/.claude/skills/comeonoliver-skillshub-ios-navigation-cef4ec && rm -rf "$T"
manifest: skills/pproenca/dot-skills/ios-navigation/SKILL.md
source content

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 ArchitectureCRITICAL
arch-
2Navigation Anti-PatternsCRITICAL
anti-

| 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