# swift-focusengine-pro

Плагин учит Claude Code правильно писать управление фокусом для tvOS, iOS, watchOS и visionOS в SwiftUI, UIKit и RealityKit. Пригодится, когда фокус прыгает не туда.

- плагин · `type=plugin` · Claude Code · ★ 22
- Автор: mhaviv
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/mhaviv/Swift-FocusEngine-Agent-Skill
- Обновлён: 2026-08-31
- HTML: https://affpapa.org/nevibecode/plugins/swift-focusengine-pro

## Что делает

Плагин даёт Claude Code справочник по фокусу на платформах Apple: tvOS, iOS/iPadOS, watchOS и visionOS. Внутри SwiftUI, UIKit и RealityKit: `@FocusState`, `UIFocusEnvironment`, `UIFocusGuide`, `focusSection`, `HoverEffect` и маршрутизация Digital Crown. Автор собрал его на опыте выпуска боевых tvOS-приложений.

В составе 10 файлов и 2,100+ строк материала: стили фокуса, его восстановление, раскладки и отладка. Отдельно разобраны 14 антипаттернов, которые ломают навигацию. Например, на tvOS `.disabled()` молча убирает вью из цепочки фокуса.

Фокус-движок считает геометрию, а не дерево вью, поэтому ошибка не даёт ни краша, ни лога. Фокус просто оказывается не там. Проверять результат всё равно придётся на устройстве с Siri Remote: код с фокусом компилируется и выглядит нормально, а ломается только там.

## Установка

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

**Через маркетплейс плагинов**
В чате агента (не в терминале):
```text
/plugin marketplace add anthropics/claude-plugins-community
```
В чате агента (не в терминале):
```text
/plugin install swift-focusengine-pro@claude-community
```

## Когда брать
- выяснить, почему на tvOS фокус перескакивает через ряд
- настроить `focusSection` в прокручиваемом списке
- сохранить фокус после перезагрузки данных
- добавить в iPadOS-приложение навигацию с клавиатуры и геймпада через группы фокуса
- разобраться, почему `onHover` не срабатывает от взгляда на visionOS

## Примеры запросов агенту
- \`/swift-focusengine-pro Проверь этот экран на проблемы с фокусом на tvOS`
- \`/swift-focusengine-pro Найди в моём SwiftUI-коде антипаттерны фокуса`
- \`/swift-focusengine-pro Почему после обновления списка фокус сбрасывается наверх?`

## Похожие
- [swift-lsp](https://affpapa.org/nevibecode/plugins/swift-lsp.md) — плагин · ★ 44635
- [cwc-makers](https://affpapa.org/nevibecode/plugins/cwc-makers.md) — плагин · ★ 44635
- [ui-design](https://affpapa.org/nevibecode/plugins/ui-design.md) — плагин · ★ 41729
- [frontend-mobile-security](https://affpapa.org/nevibecode/plugins/frontend-mobile-security.md) — плагин · ★ 41729
- [frontend-mobile-development](https://affpapa.org/nevibecode/plugins/frontend-mobile-development.md) — плагин · ★ 41729
- [test-android-apps](https://affpapa.org/nevibecode/plugins/test-android-apps.md) — плагин · ★ 7596

_Часть страницы не вошла по размеру — она есть в HTML-версии._

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