# swiftui-navigation

Скилл обучает ассистента строить типобезопасную навигацию в SwiftUI: от стеков со строгими маршрутами до модальных окон и вкладок. Пригодится при проектировании переходов для iOS и macOS.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 4400 установок · ★ 1237
- Автор: dpearson2699
- Лицензия: LicenseRef-Unknown · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/dpearson2699/swift-ios-skills/tree/HEAD/skills/swiftui-navigation/SKILL.md
- Обновлён: 2026-07-31
- HTML: https://affpapa.org/nevibecode/skills/swiftui-navigation

## Что делает

Скилл задаёт правила для организации экранов в SwiftUI. Он переводит кодовую базу на `NavigationStack` со списком маршрутов через перечисление с протоколом `Hashable`. Это исключает ошибки типизации при переходах. Вместо разрозненных вызовов применяется паттерн роутера: отдельный объект держит состояние пути и передаётся в дочерние представления через окружение.

Для планшетов и десктопов скилл предлагает разделение через `NavigationSplitView` либо ручную сборку на `HStack` с проверкой горизонтального класса размера. Модальные окна выводятся через `.sheet(item:)` с защитой от случайного закрытия через `.interactiveDismissDisabled`. Для каждого экрана можно настроить габариты презентации с помощью `.presentationSizing`.

Базовые решения рассчитаны на iOS 26+ и Swift 6.3 с обратной поддержкой вплоть до iOS 17. Если в проекте используется система старше iOS 17, такие шаблоны не заведутся без адаптации под устаревший `NavigationView`.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill swiftui-navigation -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/swiftui-navigation/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/swiftui-navigation/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill swiftui-navigation -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/swiftui-navigation/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill swiftui-navigation -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/swiftui-navigation/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install dpearson2699/swift-ios-skills swiftui-navigation
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/swiftui-navigation/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill swiftui-navigation -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/swiftui-navigation
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/swiftui-navigation/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill swiftui-navigation -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/dpearson2699/swift-ios-skills/tree/HEAD/skills/swiftui-navigation/SKILL.md

## Когда брать
- связать экраны через типобезопасный enum маршрутов в NavigationStack
- настроить независимые стеки навигации для отдельных вкладок
- адаптировать многоколоночный интерфейс под iPad и Mac через NavigationSplitView
- предотвратить случайное закрытие модального окна с несохранёнными данными

## Примеры запросов агенту
- Сделай роутер для NavigationStack с маршрутами через перечисление
- Настрой многоколоночный экран через NavigationSplitView с запасным вариантом для iPhone
- Добавь модальное окно с выбором размера презентации через presentationSizing

## Похожие
- [swiftui-ui-patterns](https://affpapa.org/nevibecode/skills/swiftui-ui-patterns.md) — скилл · 114 установок
- [swiftui-patterns](https://affpapa.org/nevibecode/skills/affaan-m-swiftui-patterns.md) — скилл · 4600 установок
- [swiftui-motion](https://affpapa.org/nevibecode/skills/swiftui-motion.md) — скилл · 943 установки
- [swiftui-whats-new-27](https://affpapa.org/nevibecode/skills/swiftui-whats-new-27.md) — скилл · 737 установок
- [guide-swiftui-animations](https://affpapa.org/nevibecode/skills/guide-swiftui-animations.md) — скилл · 347 установок
- [swiftui-specialist](https://affpapa.org/nevibecode/skills/swiftui-specialist.md) — скилл · 864 установки

Из того же набора: [dpearson2699/swift-ios-skills](https://affpapa.org/nevibecode/by/dpearson2699/swift-ios-skills.md) — 69 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
