swiftui-performance — скилл для Claude Code: профилирование SwiftUI
Ищет причины медленной отрисовки, рывков прокрутки и лишних обновлений SwiftUI. Нужен для разбора кода и замеров в Instruments.
npx skills add dpearson2699/swift-ios-skills --skill swiftui-performance -a claude-codeЧто делает swiftui-performance
Скилл ведёт расследование от симптома к проверяемому исправлению. Он начинает с ревью кода, отмечает гипотезы и просит минимальный пример, условия воспроизведения, устройство, версию ОС и конфигурацию сборки, когда этого требует случай.
Для замеров он направляет к шаблону SwiftUI в Instruments, советует использовать сборку Release и реальное устройство. Разбор связывает обновления представлений с Time Profiler и событиями зависаний или рывков. Проверяет нестабильные идентификаторы в ForEach, вычисления в body, слишком широкие зависимости состояния, тяжёлую раскладку и изображения.
Скилл предлагает точечные правки: сузить состояние до дочерних представлений, вынести тяжёлую работу из body, закрепить идентичность строк или уменьшить размер изображения до отрисовки. Затем он предлагает повторить тот же замер и сравнить CPU, пропуски кадров и пик памяти, если эти показатели доступны. Работа на Release и устройстве важна, поэтому результаты только из симулятора стоит перепроверить.
Какие задачи решает
- найти источник рывков при прокрутке SwiftUI
- выявить лишние обновления
body - стабилизировать идентификаторы строк в
ForEach - вынести сортировку или декодирование из
body - сопоставить данные Instruments с конкретным кодом
Примеры запросов агенту
- Разбери этот экран SwiftUI: прокрутка списка дёргается, вот код
RowиForEach. - Подскажи, как снять профиль в Instruments для медленной анимации и что прислать для диагностики.
- Проверь, почему
bodyэтого представления часто пересчитывается, и предложи замеры до исправления.
Как установить swiftui-performance
1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill swiftui-performance -a claude-code2Вручную: положить файлы
~/.claude/skills/swiftui-performance/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/swiftui-performance/
1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill swiftui-performance -a codex2Вручную: положить файлы
.agents/skills/swiftui-performance/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill swiftui-performance -a cursor2Вручную: положить файлы
.cursor/skills/swiftui-performance/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dpearson2699/swift-ios-skills swiftui-performance2Вручную: положить файлы
.github/skills/swiftui-performance/SKILL.md1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill swiftui-performance -a gemini-cli2Командой платформы
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/swiftui-performanceВручную: положить файлы
.devin/skills/swiftui-performance/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill swiftui-performance -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о swiftui-performance
Как установить swiftui-performance в Claude Code?
Выполните npx skills add dpearson2699/swift-ios-skills --skill swiftui-performance -a claude-code, затем повторите npx skills add dpearson2699/swift-ios-skills --skill swiftui-performance -a claude-code. Файл скилла будет находиться в ~/.claude/skills/swiftui-performance/SKILL.md.
Что делает swiftui-performance?
Скилл помогает профилировать и устранять проблемы времени выполнения SwiftUI через ревью кода, Instruments и повторяемые измерения. Он разделяет гипотезы по коду и выводы, подтверждённые трассировкой.
Какие замеры предлагает swiftui-performance?
Для профилирования он использует шаблон SwiftUI в Instruments и сопоставляет его данные с Time Profiler и событиями Hangs/Hitches. Для поиска причины обновления представления можно добавить Self._printChanges() в отладочной сборке.