Как отучить нейросети писать устаревший SwiftUI-код
Если вы пробовали генерировать верстку для iOS с помощью современных LLM вроде Claude или моделей в Cursor, то наверняка замечали странности. Модель уверенно выдает рабочий на вид экран, компилятор не ругается, но внутри скрыт зоопарк из старых API. Например, NavigationView, который Apple списала в архив еще пару лет назад, или самодельные костыли для анимаций там, где давно есть встроенные модификаторы.
Хуже всего дела обстоят с VoiceOver. Ассистенты обожают накручивать слои из кастомных жестов, напрочь ломая доступность для незрячих пользователей.
Пол Хадсон, автор проекта Hacking with Swift, решил эту проблему системно. Он собрал репозиторий twostraws/SwiftUI-Agent-Skill, который обучает ассистентов правильным привычкам в декларативном UI.
Что представляет собой SwiftUI Pro
По сути, это специализированный скилл в открытом стандарте Agent Skills. Формат поддерживают Claude Code, Codex, Gemini, Cursor и расширения для Xcode.
Вместо бесконечного ручного напоминания в системном промпте «не используй устаревший синтаксис», вы подключаете к агенту готовую базу правил. Скилл базируется на наработках Хадсона из проекта AGENTS.md и сфокусирован именно на тех граблях, на которые большие языковые модели наступают чаще всего.
Что внутри этой базы знаний:
- разбор актуальной навигации и связывания состояний;
- правила оптимизации перерисовок во View;
- проверка доступности элементов управления для VoiceOver;
- каталог мягко устаревших (soft-deprecated) методов, которые компилятор еще пропускает, но писать так уже не стоит.
У автора есть похожие скиллы под другие части платформы: SwiftData Pro, Swift Concurrency Pro и Swift Testing Pro.
Как установить скилл в свои инструменты
Подключение занимает меньше минуты через npx:
npx skills add https://github.com/twostraws/swiftui-agent-skill --skill swiftui-pro
Команда спросит, хотите ли вы активировать скилл глобально для всех проектов или привязать только к текущему репозиторию.
Если вы работаете в Claude Code, можно воспользоваться встроенным менеджером плагинов:
/plugin marketplace add twostraws/SwiftUI-Agent-Skill
/plugin install swiftui-pro@swiftui-agent-skill
Для пользователей Xcode автор записал отдельное видео с разбором интеграции в процесс разработки. При желании репозиторий можно просто склонировать и забирать правила локально.
Как запускать проверки
После установки скилл активируется через команды или на естественном языке. В Claude Code достаточно ввести:
/swiftui-pro
Ассистент Codex отзывается на похожую конструкцию:
$swiftui-pro
Командам можно сразу задавать контекст, чтобы агент не тратил время и токены на полный аудит файла. Например:
/swiftui-pro Check for deprecated API
Либо обычным промптом: «Используй скилл SwiftUI Pro и найди проблемы с производительностью в этом модуле».
Экономия токенов и фокус на неочевидном
Интересная деталь в философии проекта: автор жестко следит за размером инструкций. Базовые вещи, которые модели и так знают без подсказок (вроде синтаксиса VStack или модификатора .padding()), сюда намеренно не включают. Каждая строчка контекста тратит лимиты контекстного окна, поэтому правила содержат только тонкие места, краевые случаи и неочевидные подводные камни рендеринга.
Если вы захотите отправить пуллреквест с собственным правилом, держите в голове два условия: максимальная краткость формулировок и лицензия MIT.
Кому пригодится репозиторий
Если вы пишете под iOS или macOS и активно пользуетесь ИИ-агентами прямо в редакторе, ставить однозначно стоит. Это избавляет от необходимости вычищать легаси-код за нейросетью и сразу направляет генерацию интерфейсов в сторону свежих стандартов Swift.
Начните с установки через npx в одном небольшом пет-проекте и попросите агента провести ревью экрана с анимациями. Разница в предложенных диффах будет видна сразу.


