app-store
App Store optimization and marketing skills for descriptions, screenshots, keywords, review responses, and comprehensive…
SwiftUI navigation architecture patterns including NavigationStack, NavigationSplitView, TabView, programmatic navigation, and custom transitions. Use when reviewing or building navigation, fixing navigation bugs, or architecting app flow.
Claude Code
$ npx -y skills add rshankras/claude-code-apple-skills --skill navigation-patterns --agent claude-code
Codex
$ npx skills add rshankras/claude-code-apple-skills --skill navigation-patterns -a codex -y
Cursor
$ npx skills add rshankras/claude-code-apple-skills --skill navigation-patterns -a cursor -y
Gemini CLI
$ npx skills add rshankras/claude-code-apple-skills --skill navigation-patterns -a gemini-cli -y
GitHub Copilot
$ npx skills add rshankras/claude-code-apple-skills --skill navigation-patterns -a github-copilot -y
OpenCode
$ npx skills add rshankras/claude-code-apple-skills --skill navigation-patterns -a opencode -y
Windsurf
$ npx skills add rshankras/claude-code-apple-skills --skill navigation-patterns -a windsurf -y
name: navigation-patterns description: SwiftUI navigation architecture patterns including NavigationStack, NavigationSplitView, TabView, programmatic navigation, and custom transitions. Use when reviewing or building navigation, fixing navigation bugs, or architecting app flow. allowed-tools: [Read, Glob, Grep] last_verified: 2026-07-16 review_by: 2027-06-22 os_version: iOS 27 / macOS 27
Comprehensive guide for SwiftUI navigation architecture on iOS, iPadOS, and macOS. Covers the modern navigation APIs (iOS 16+/macOS 13+) with patterns for common and advanced use cases.
Use this to pick the right navigation container:
What is the app structure?
│
├─ Flat sections (3-5 top-level areas)
│ └─ TabView → see tab-view.md
│
├─ Hierarchical drill-down (list → detail)
│ └─ NavigationStack → see navigation-stack.md
│
├─ Sidebar + content (macOS / iPad)
│ ├─ Two columns → NavigationSplitView → see navigation-split-view.md
│ └─ Three columns → NavigationSplitView → see navigation-split-view.md
│
└─ Combined (tabs with drill-down, sidebar with stacks)
└─ TabView + NavigationStack per tab
OR NavigationSplitView + NavigationStack in detail| Pattern | Container | Min OS | Reference | |---------|-----------|--------|-----------| | Simple drill-down | `NavigationStack` | iOS 16 | `navigation-stack.md` | | Value-based links | `NavigationLink(value:)` | iOS 16 | `navigation-stack.md` | | Programmatic push/pop | `NavigationPath` | iOS 16 | `programmatic-navigation.md` | | Pop to root | `path = NavigationPath()` | iOS 16 | `programmatic-navigation.md` | | State restoration | `NavigationPath.CodableRepresentation` | iOS 16 | `programmatic-navigation.md` | | Two-column layout | `NavigationSplitView` | iOS 16 | `navigation-split-view.md` | | Three-column layout | `NavigationSplitView` | iOS 16 | `navigation-split-view.md` | | Column visibility | `NavigationSplitViewVisibility` | iOS 16 | `navigation-split-view.md` | | Tab bar | `TabView` | iOS 13 | `tab-view.md` | | Customizable tabs | `Tab` + `TabView` | iOS 18 | `tab-view.md` | | Sidebar tabs (iPad) | `.tabViewStyle(.sidebarAdaptable)` | iOS 18 | `tab-view.md` | | Zoom transition | `.navigationTransition(.zoom)` | iOS 18 | `navigation-transitions.md` | | Custom transitions | `NavigationTransition` | iOS 18 | `navigation-transitions.md` |
The container APIs above decide *how* navigation is built; these rules decide *whether* it's designed right.
**Tab bars**
**Push vs modal**
**Wayfinding**
Nearly every app is one of these three shapes. Pick one per scene, then lift its navigation state.
1. **Pushable stack** — `NavigationStack(path:)` + `NavigationLink(value:)` + `.navigationDestination(for:)`. Pop-to-root is `path.removeAll()`; a deep link is just assigning the path. 2. **Multi-column without stacks** — `NavigationSplitView` + `List(selection:)` in each leading column. Value links auto-drive the next column's selection, so programmatic navigation is setting the selection value. 3. **Split + stack (Photos-style)** — `NavigationSplitView` with a `NavigationStack(path:)` *inside the detail column*: sidebar selection picks the collection, the stack drills into it.
**Rules that make the recipes hold up:**
**State restoration:** persist through `@SceneStorage("navigation")` plus a `.task` that restores once on appear, then streams subsequent path changes back into storage.
Read the user's code or requirements to determine:
Based on the need, read from this directory:
Apply patterns from the reference files. Check for common mistakes:
A collection of Claude Code skills for iOS, macOS, watchOS, visionOS, and Apple platform development. These skills help you plan and build apps, maintain code quality, ensure HIG compliance, and guide you from idea to App Store.
App Store optimization and marketing skills for descriptions, screenshots, keywords, review responses, and comprehensive…
Privacy-preserving ad measurement with AdAttributionKit (SKAdNetwork's successor) — install and re-engagement attribution,…
Generate compelling App Store descriptions that convert browsers into users. Use when writing initial descriptions, improving…
Apple Search Ads campaign strategy for indie developers — paid acquisition, keyword bidding, budget planning, and ROAS…
Take a one-time in-app purchase from MISSING_METADATA to READY_TO_SUBMIT in App Store Connect — set its price schedule and…
Optimize app title, subtitle, and keywords for maximum App Store discoverability. Use when launching a new app, improving search…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.