# Kotlin Android

> Modern Android development - Jetpack, Compose, Architecture Components

- Skill: `majiayu000/kotlin-android` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/kotlin-android`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/kotlin-android/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/kotlin-android

---


# Kotlin Android Skill

Production-ready Android development with Jetpack libraries.

## Topics Covered

### MVVM Pattern
```kotlin
@HiltViewModel
class UserViewModel @Inject constructor(
    private val repository: UserRepository
) : ViewModel() {
    private val _uiState = MutableStateFlow(UiState())
    val uiState = _uiState.asStateFlow()

    fun load() = viewModelScope.launch {
        _uiState.update { it.copy(isLoading = true) }
        repository.getUsers()
            .onSuccess { users -> _uiState.update { it.copy(users = users, isLoading = false) } }
    }
}
```

### Compose UI
```kotlin
@Composable
fun UserScreen(viewModel: UserViewModel = hiltViewModel()) {
    val state by viewModel.uiState.collectAsStateWithLifecycle()
    UserContent(state)
}
```

### Type-Safe Navigation
```kotlin
@Serializable
data class ProfileRoute(val userId: String)

composable<ProfileRoute> { entry ->
    val route: ProfileRoute = entry.toRoute()
}
```

## Troubleshooting

| Issue | Resolution |
|-------|------------|
| Recomposition loop | Mark class @Stable or use derivedStateOf |
| ViewModel recreated | Use hiltViewModel() not viewModel() |

## Usage
```
Skill("kotlin-android")
```

