Jetpack Compose Skills
anhvt52/jetpack-compose-skillsСкилл для AI-агентов: генерация, ревью и анализ UI-кода на Jetpack Compose. Покрывает актуальные API, управление состоянием, навигацию, производительность и доступность. Совместим с Claude Code, Cursor, Codex.
Установка
npx skills add https://github.com/anhvt52/jetpack-compose-skillsREADME
Modern Jetpack Compose — Agent Skill
Скилл для написания, ревью и анализа современного Android UI-кода на Jetpack Compose. Совместим с Claude Code, Cursor, Codex и любой платформой, поддерживающей формат Agent Skills.
Зачем нужен этот скилл?
LLM-модели нередко генерируют устаревший или некорректный код на Jetpack Compose. Типичные проблемы:
- Неправильный сбор состояния — использование
collectAsState()вместоcollectAsStateWithLifecycle() - Нестабильная рекомпозиция — передача нестабильных лямбд или неаннотированных data-классов, вызывающих лишние перерисовки
- Игнорирование отступов Scaffold — забытый
paddingValuesиз content-лямбдыScaffold, из-за чего контент уходит под системные панели - Устаревшие API — обращение к библиотекам accompanist, уже перенесённым в Compose, или к API Material 2 при наличии эквивалентов в Material 3
- Архитектурный дрейф — смешение паттернов state hoisting или обход модели UDF
Скилл даёт AI-агенту актуальную и проверенную базу знаний по всем этим темам, чтобы с первой попытки генерировать корректный и идиоматичный Compose-код.
Что умеет скилл
Загрузите этот скилл, чтобы дать AI-агенту глубокие знания современных практик Jetpack Compose. Скилл помогает агентам:
- Генерировать идиоматичный Compose-код с нуля
- Ревьюить существующий код на предмет устаревших API, антипаттернов и проблем доступности
- Направлять архитектурные решения в области управления состоянием, навигации и производительности
Покрытие скилла
| Файл справки | Темы |
|---|---|
api.md | Устаревшие API → современные замены, Material 2 → 3, миграция с accompanist |
composables.md | Соглашения об именовании, state hoisting, slot API, @Preview, контракт модификаторов |
state.md | MVVM + UDF, ViewModel + StateFlow, remember vs rememberSaveable, derivedStateOf |
effects.md | LaunchedEffect, DisposableEffect, SideEffect, rememberCoroutineScope |
recomposition.md | @Stable/@Immutable, нестабильные коллекции, key() в lazy-списках, стабильность лямбд |
navigation.md | Типобезопасная Navigation Compose, вложенные графы, ViewModel в BackStack-скоупе, deep links |
design.md | Темизация Material 3, динамические цвета, адаптивные макеты, Material Expressive (BOM 2025.x) |
accessibility.md | TalkBack, семантика, mergeDescendants, области касания, контрастность цветов |
performance.md | Оптимизация LazyList, remember, отложенное чтение состояния, graphicsLayer |
kotlin.md | Sealed-интерфейсы, корутины, stateIn, null-безопасность, выражения when |
hygiene.md | Тестирование с ComposeTestRule, lint/detekt, секреты, именование ресурсов |
Установка
Рекомендуемый способ — npx (Claude Code, Cursor, Codex, Gemini)
npx skills add https://github.com/anhvt52/jetpack-compose-skills
Устанавливает скилл для всех обнаруженных агентов на вашей машине. Можно уточнить область применения:
# Только для текущего проекта
npx skills add https://github.com/anhvt52/jetpack-compose-skills
# Глобально (для всех проектов)
npx skills add https://github.com/anhvt52/jetpack-compose-skills -gЕсли npx недоступен, сначала установите Node.js:
brew install node
Вручную — Claude Code
Клонируйте репозиторий и добавьте в CLAUDE.md вашего проекта:
Use the skill at: path/to/modern-jetpack-compose/SKILL.md
Вручную — Cursor / Codex / OpenAI-совместимые платформы
Используйте конфигурацию из modern-jetpack-compose/agents/openai.yaml.
Целевая платформа
- Compose BOM: 2024.x (стабильная версия по умолчанию), с примечаниями для 2025.x (Material Expressive)
- Material Design: Material 3
- Архитектура: MVVM + Unidirectional Data Flow (UDF)
- Язык: Kotlin с корутинами, Flow и sealed-интерфейсами
Примеры использования
Ревью кода:
«Используя скилл modern-jetpack-compose, проверь файлы в
feature/home/на соответствие лучшим практикам.»
Генерация кода:
«Используя скилл modern-jetpack-compose, напиши
BookListScreenс LazyColumn, строкой поиска и пустым состоянием, подкреплённый ViewModel.»
Точечная проверка:
«Используя
references/accessibility.mdиз скилла modern-jetpack-compose, проверь все composable-функции вcomponents/на проблемы доступности.»
Формат вывода
Скилл организует результаты по файлам. Каждая проблема включает:
- Файл и номер строки
- Нарушаемое правило
- Фрагмент кода на Kotlin: до и после исправления
Результаты завершаются приоритизированным списком наиболее значимых изменений.
Лицензия
MIT — см. LICENSE.
Автор
Anh Vu — anhvt52@gmail.com
Участие в разработке
См. CONTRIBUTING.md.