Главная · Скиллы · swiftui-expert-skill

swiftui-expert-skillэксперт SwiftUI Avdlee

avdlee/swiftui-agent-skill

Эксперт SwiftUI.

Установка

npx -y skills add avdlee/swiftui-agent-skill --skill swiftui-expert-skill --agent claude-code

SwiftUI 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

Рабочий процесс по задачам

Ревью существующего кода

  1. Прочитать код и определить применимые темы
  2. Отметить deprecated API (сравнить с references/latest-apis.md)
  3. Запустить Topic Router для каждой релевантной темы
  4. Проверить #available gating и fallback пути для iOS 26+ фич

Улучшение существующего кода

  1. Аудит реализации по темам Topic Router
  2. Заменить deprecated API современными эквивалентами из references/latest-apis.md
  3. Рефакторить горячие пути для сокращения лишних state updates
  4. Вынести сложные view bodies в отдельные subviews
  5. Предложить image downsampling при встрече UIImage(data:)

Реализация новой SwiftUI фичи

  1. Спроектировать data flow: определить owned vs injected state
  2. Структурировать представления для оптимального diffing (вынести subviews заранее)
  3. Применить корректные паттерны анимаций (implicit vs explicit, transitions)
  4. Использовать Button для всех нажимаемых элементов; добавить accessibility
  5. Обернуть version-specific API в #available с fallbacks

Запись трейса Instruments

Активировать при запросах «record a trace», «profile the app», «capture a session».

  1. Подтвердить цель: подключение к запущенному приложению, запуск или запись всех процессов
  2. Выбрать шаблон: SwiftUI для реальных устройств и хост-Mac (НЕ iOS Simulator — там SwiftUI lane пуст); для Simulator использовать Time Profiler
  3. Записать трейс командой из references/trace-recording.md
  4. Проанализировать: SwiftUI lane, Time Profiler, Hangs & Hitches

Topic Router — справочники по темам

ТемаСправочник
Управление состоянием, @Observablereferences/state-management.md
Производительность и invalidationreferences/performance.md
Список, ForEach, идентичностьreferences/lists-and-identity.md
Environmentreferences/environment.md
Локализацияreferences/localization.md
Анимации и transitionsreferences/animations.md
Liquid Glass (iOS 26)references/liquid-glass.md
Миграция APIreferences/latest-apis.md
Запись трейсаreferences/trace-recording.md
Оптимизация изображенийreferences/image-optimization.md

Из того же репозитория