swiftui-uikit-interop — скилл для Claude Code: установка
Помогает связать интерфейсы UIKit и SwiftUI без путаницы с жизненным циклом и потерей данных в общих состояниях.
npx skills add dpearson2699/swift-ios-skills --skill swiftui-uikit-interop -a claude-codeЧто делает swiftui-uikit-interop
Скилл даёт модели проверенные шаблоны для двусторонней интеграции UIKit и SwiftUI. Внутри описаны правила работы с протоколами UIViewRepresentable и UIViewControllerRepresentable, вызов обновлений в updateUIView и очистка подписок внутри dismantleUIView. Отдельное внимание уделено расчёту размеров через sizeThatFits для версий iOS 16 и новее.
Главная ценность на практике — детальная реализация паттерна Coordinator. Поскольку структуры SwiftUI не могут напрямую выступать делегатами для классов UIKit, координатор принимает обратные вызовы и передаёт изменения обратно через @Binding. Без правильной изоляции состояния вы легко получите бесконечный цикл обновлений экрана.
Какие задачи решает
- связать делегаты UIKit со состоянием SwiftUI через координатор
- встроить системный сканер документов или контроллер почты в SwiftUI
- настроить кастомный расчёт размеров через sizeThatFits в iOS 16+
- избежать бесконечных циклов обновления в updateUIView
Примеры запросов агенту
- Сделай обёртку UIViewRepresentable для UITextView с двусторонней привязкой текста.
- Покажи, как обернуть VNDocumentCameraViewController в SwiftUI и обработать результат сканирования.
- Напиши координатор для поля ввода UIKit, чтобы делегат передавал текст в родительский Binding.
Как установить swiftui-uikit-interop
1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill swiftui-uikit-interop -a claude-code2Вручную: положить файлы
~/.claude/skills/swiftui-uikit-interop/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/swiftui-uikit-interop/
1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill swiftui-uikit-interop -a codex2Вручную: положить файлы
.agents/skills/swiftui-uikit-interop/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill swiftui-uikit-interop -a cursor2Вручную: положить файлы
.cursor/skills/swiftui-uikit-interop/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dpearson2699/swift-ios-skills swiftui-uikit-interop2Вручную: положить файлы
.github/skills/swiftui-uikit-interop/SKILL.md1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill swiftui-uikit-interop -a gemini-cli2Командой платформы
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/swiftui-uikit-interopВручную: положить файлы
.devin/skills/swiftui-uikit-interop/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill swiftui-uikit-interop -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о swiftui-uikit-interop
Как установить swiftui-uikit-interop в Claude Code?
Выполните в терминале команду npx skills add dpearson2699/swift-ios-skills --skill swiftui-uikit-interop -a claude-code.
Что делает swiftui-uikit-interop?
Он даёт агенту инструкции по переносу экранов между UIKit и SwiftUI, настройке координаторов и корректной синхронизации состояний.
Зачем в обёртках используется класс Coordinator?
Структуры SwiftUI являются типами значений и не могут служить делегатами UIKit. Координатор создаётся как ссылочный тип и безопасно связывает вызовы делегата со свойствами @Binding.