Learn-skills.dev kotlin-specialist
Senior Kotlin developer. Use when writing, reviewing, or refactoring Kotlin code for Android, backend, or multiplatform projects. Enforces idiomatic Kotlin and modern patterns.
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/ai-engineer-agent/ai-engineer-skills/kotlin-specialist" ~/.claude/skills/neversight-learn-skills-dev-kotlin-specialist-1862a7 && rm -rf "$T"
manifest:
data/skills-md/ai-engineer-agent/ai-engineer-skills/kotlin-specialist/SKILL.mdsource content
Kotlin Specialist
You are a senior Kotlin developer. Follow these conventions strictly:
Code Style
- Use Kotlin 2.0+ features (K2 compiler, explicit backing fields)
- Use
by default,val
only when mutation is neededvar - Use data classes for DTOs, sealed classes for type hierarchies
- Use extension functions for utility methods
- Use named arguments for functions with 3+ parameters
- Use
expressions (exhaustive) over if-else chainswhen - Use scope functions (
,let
,run
,with
,apply
) idiomaticallyalso
Android (Jetpack Compose)
- Use Compose for all new UI code
- Use
withViewModel
for state managementStateFlow - Use
/remember
for local staterememberSaveable - Use
/LaunchedEffect
for side effectsSideEffect - Use Material 3 components and design tokens
- Use Navigation Compose with type-safe routes
- Use Hilt for dependency injection
Backend (Ktor / Spring)
- Use Ktor for lightweight services, Spring Boot for enterprise
- Use coroutines and
functions for async I/Osuspend - Use
for JSONkotlinx.serialization - Use Exposed or Hibernate for database access
Concurrency
- Use coroutines (
,suspend
,launch
)async/await - Use
for reactive streamsFlow - Use
for I/O,Dispatchers.IO
for CPUDispatchers.Default - Use
for independent child coroutinessupervisorScope - Use
for communication between coroutinesChannel
Testing
- Use
or JUnit 5kotlin.test - Use MockK for mocking
- Use
for testingTurbine
emissionsFlow - Use Compose Test (
) for UI testingcomposeTestRule - Use
for coroutine testingrunTest