kotlin — скилл для Claude Code: типы, корутины, Android API
Скилл для работы с Kotlin и Android API: помогает моделировать состояния типами, разводить синхронный и асинхронный код и не прятать блокирующие вызовы за свойствами. Пригодится при правке .kt-файлов и обвязки Nitro Module.
npx skills add margelo/react-native-skills --skill kotlin -a claude-codeЧто делает kotlin
Скилл задаёт порядок работы: сначала прочитать локальный Kotlin-код, сгенерированные абстрактные классы и форму публичного API, потом описать допустимые состояния типами и только затем писать поведение. Варианты состояния предлагается выражать sealed-интерфейсами или отдельными классами, а не одним data-классом с кучей nullable-полей. Связанные значения держатся ненулевыми на том варианте, где они действительно есть.
Отдельный блок про асинхронность. Корутины — для естественно приостанавливаемых API и Android I/O, а быстрая локальная работа остаётся синхронной. runBlocking в библиотечном коде, геттерах и точках входа со стороны JS не используется. Если значение приходит из конкретного Android-колбэка, скилл советует слушателя, Flow или событийный API. Повторяющиеся переходы между диспетчерами он считает признаком проблемы в архитектуре и предлагает переделать владение жизненным циклом, а не лечить гонки через delay или Thread.sleep.
Есть правила по стилю: классы по умолчанию final, data class для простых значений, require и check вместо тихого игнорирования ошибок, аккуратный Java interop и отказ от !! вне узких мест. Для Nitro Module скилл предлагает работать в паре с build-nitro-modules — там генерируемые спецификации, маппинг Promise, аннотации и ограничения HybridObject.
Какие задачи решает
- разложить варианты состояния по sealed-интерфейсам вместо nullable-полей
- вынести блокирующий вызов из геттера в асинхронный метод
- решить, где нужна корутина, а где хватит синхронного кода
- убрать лишние переходы между диспетчерами и главным потоком
- привести к Kotlin типы из Java перед публичным API
Примеры запросов агенту
- Посмотри
Scanner.ktи переделайScannedDataна sealed-интерфейс, чтобы у каждого варианта были только свои поля - В этом классе статус сессии читается через
runBlockingв геттере — сделай асинхронный метод - Проверь
HybridScanner.kt: не спрятаны ли за свойствами обращения к Android-сервисам и I/O
Как установить kotlin
1Через Skills CLI (Vercel)
npx skills add margelo/react-native-skills --skill kotlin -a claude-code2Вручную: положить файлы
~/.claude/skills/kotlin/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/kotlin/
1Через Skills CLI (Vercel)
npx skills add margelo/react-native-skills --skill kotlin -a codex2Вручную: положить файлы
.agents/skills/kotlin/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add margelo/react-native-skills --skill kotlin -a cursor2Вручную: положить файлы
.cursor/skills/kotlin/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install margelo/react-native-skills kotlin2Вручную: положить файлы
.github/skills/kotlin/SKILL.md1Через Skills CLI (Vercel)
npx skills add margelo/react-native-skills --skill kotlin -a gemini-cli2Командой платформы
gemini skills install https://github.com/margelo/react-native-skills --path skills/kotlinВручную: положить файлы
.devin/skills/kotlin/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add margelo/react-native-skills --skill kotlin -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о kotlin
Как установить скилл kotlin в Claude Code?
Выполните npx skills add margelo/react-native-skills --skill kotlin -a claude-code. Файл скилла появится по пути ~/.claude/skills/kotlin/SKILL.md.
Что делает скилл kotlin?
Помогает проектировать, писать и проверять Kotlin- и Android-API: типизировать состояния, разводить синхронную и асинхронную работу, следить за Java interop и реализациями Nitro Module.
С чем сочетается скилл kotlin при работе над Nitro Module?
Скилл советует использовать его вместе с build-nitro-modules — тот отвечает за генерируемые спецификации, маппинг Promise, аннотации и ограничения HybridObject.