android-kotlin
When to use this skill
Use this skill whenever the user wants to:
- Create Android applications using Kotlin with Activities, Fragments, or Jetpack Compose
- Implement ViewModel, LiveData, StateFlow, or other Jetpack architecture components
- Configure Gradle build files (build.gradle.kts), dependencies, or build variants
- Set up navigation, permissions, or Android lifecycle handling
- Build and sign APK/AAB for release or configure ProGuard
How to use this skill
1. Project Setup
Create a new project with Android Studio or configure build files:
// build.gradle.kts (app module)
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
dependencies {
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0")
implementation("androidx.navigation:navigation-fragment-ktx:2.7.6")
}
2. Architecture (MVVM with ViewModel)
class MainViewModel : ViewModel() {
private val _items = MutableStateFlow<List<Item>>(emptyList())
val items: StateFlow<List<Item>> = _items.asStateFlow()
fun loadItems() {
viewModelScope.launch {
_items.value = repository.getItems()
}
}
}
3. UI with Jetpack Compose
@Composable
fun ItemList(viewModel: MainViewModel = viewModel()) {
val items by viewModel.items.collectAsState()
LazyColumn {
items(items) { item ->
Text(text = item.name, modifier = Modifier.padding(16.dp))
}
}
}
4. Navigation
Register destinations in the navigation graph and navigate programmatically:
findNavController().navigate(R.id.action_home_to_detail)
Best Practices
- Use
viewModelScopefor coroutines tied to ViewModel lifecycle; avoid leaking activities. - Save UI state with
SavedStateHandlein ViewModel; handle process death gracefully. - Use ViewBinding or Jetpack Compose instead of
findViewById. - Apply ProGuard/R8 rules for release builds; keep signing keys secure.
- Test with
@RunWith(AndroidJUnit4::class)and Espresso for UI tests.
Resources
- https://developer.android.com/kotlin
- https://developer.android.com/jetpack/compose
- https://developer.android.com/topic/architecture
Keywords
android, Kotlin, Jetpack, Compose, ViewModel, Navigation, Gradle, AndroidManifest.xml
More from partme-ai/full-stack-skills
element-plus-vue3
Provides comprehensive guidance for Element Plus Vue 3 component library including installation, components, themes, internationalization, and API reference. Use when the user asks about Element Plus for Vue 3, needs to build Vue 3 applications with Element Plus, or customize component styles.
63ascii-cli-logo-banner
Entry point for ASCII CLI banners that routes to the Python built-in font skill or figlet.js/FIGfont skill. Use when the user wants a startup banner, ASCII logo, terminal welcome screen, or CLI branding for a service.
38course-designer
Design structured courses including syllabi, learning objectives using Bloom's taxonomy, lesson plans, and assessment rubrics. Use when the user asks about course design, needs to create a curriculum, write learning objectives, structure educational modules, or build assessment plans.
30uniapp-mini-guide
A comprehensive skill for uni-app mini program development. Use when building uni-app mini programs, configuring mini program settings, or working with mini program components and APIs based on the official native support docs.
29uniapp-native-app
Packages uni-app projects as native Android APK/AAB and iOS IPA via offline packaging, covering manifest configuration, signing certificates, native plugin integration, and build distribution. Use when the user needs to package a uni-app as a native app, configure Android keystore or iOS provisioning, or set up offline build for distribution.
27spring-security
Provides comprehensive guidance for Spring Security including authentication, authorization, OAuth2, JWT, and security best practices. Use when the user asks about Spring Security, needs to implement security in Spring applications, configure authentication, or work with security features.
27