swiftui-expert-skillэксперт SwiftUI Avdlee
avdlee/swiftui-agent-skill
Эксперт SwiftUI.
Установка
npx -y skills add avdlee/swiftui-agent-skill --skill swiftui-expert-skill --agent claude-codeSwiftUI Expert Skill
Написание, ревью и рефакторинг SwiftUI кода для iOS и macOS. Охватывает: управление состоянием и @Observable, композиция представлений и производительность, списки и идентичность ForEach, использование environment, локализация, анимации, Liquid Glass, миграция устаревших API, анализ трейсов Instruments.
Правила работы
- Проверять
references/latest-apis.mdв начале каждой задачи — не использовать deprecated API - Предпочитать нативные SwiftUI API вместо UIKit/AppKit bridging (если bridging не необходим)
- Фокус на корректности и производительности; не навязывать конкретные архитектуры (MVVM, VIPER и др.)
- Поощрять разделение бизнес-логики и представлений без диктовки способа
- Следовать Apple Human Interface Guidelines и паттернам API design
- Liquid Glass — только по явному запросу пользователя (
references/liquid-glass.md) - Оптимизации производительности — как предложения, не требования
- Использовать
#availableс разумными fallbacks для version-specific API
Рабочий процесс по задачам
Ревью существующего кода
- Прочитать код и определить применимые темы
- Отметить deprecated API (сравнить с
references/latest-apis.md) - Запустить Topic Router для каждой релевантной темы
- Проверить
#availablegating и fallback пути для iOS 26+ фич
Улучшение существующего кода
- Аудит реализации по темам Topic Router
- Заменить deprecated API современными эквивалентами из
references/latest-apis.md - Рефакторить горячие пути для сокращения лишних state updates
- Вынести сложные view bodies в отдельные subviews
- Предложить image downsampling при встрече
UIImage(data:)
Реализация новой SwiftUI фичи
- Спроектировать data flow: определить owned vs injected state
- Структурировать представления для оптимального diffing (вынести subviews заранее)
- Применить корректные паттерны анимаций (implicit vs explicit, transitions)
- Использовать
Buttonдля всех нажимаемых элементов; добавить accessibility - Обернуть version-specific API в
#availableс fallbacks
Запись трейса Instruments
Активировать при запросах «record a trace», «profile the app», «capture a session».
- Подтвердить цель: подключение к запущенному приложению, запуск или запись всех процессов
- Выбрать шаблон:
SwiftUIдля реальных устройств и хост-Mac (НЕ iOS Simulator — там SwiftUI lane пуст); для Simulator использоватьTime Profiler - Записать трейс командой из
references/trace-recording.md - Проанализировать: SwiftUI lane, Time Profiler, Hangs & Hitches
Topic Router — справочники по темам
| Тема | Справочник |
|---|---|
| Управление состоянием, @Observable | references/state-management.md |
| Производительность и invalidation | references/performance.md |
| Список, ForEach, идентичность | references/lists-and-identity.md |
| Environment | references/environment.md |
| Локализация | references/localization.md |
| Анимации и transitions | references/animations.md |
| Liquid Glass (iOS 26) | references/liquid-glass.md |
| Миграция API | references/latest-apis.md |
| Запись трейса | references/trace-recording.md |
| Оптимизация изображений | references/image-optimization.md |
