android
Use this skill when working on Android client (大前端 / 移动端) codebases.
Defaults (unless repo dictates otherwise)
- •Language: Kotlin
- •UI: Jetpack Compose (if legacy XML exists, follow existing structure)
- •Architecture: MVVM + unidirectional data flow (UDF)
- •Async: Kotlin Coroutines + Flow
- •DI: Hilt if present; otherwise keep consistent with current
Project structure (recommended)
- •
app/: application module (entry, navigation, composition root) - •
core/: shared utilities and platform abstractions (optional) - •
data/: API + persistence implementations - •
domain/: use-cases, business models (pure Kotlin) - •
feature/<name>/: feature modules or packages (UI + presentation)
Workflow
- •Establish constraints
- •Min/target SDK, build system, existing modules.
- •Compose vs XML, single-module vs multi-module.
- •Define app flows
- •Identify screens and navigation graph.
- •Define state models per screen and their events/actions.
- •Data layer design
- •API models vs domain models (mapping boundaries).
- •Retrofit service interfaces + OkHttp interceptors (auth, logging).
- •Caching strategy: memory vs disk (Room/DataStore).
- •UI & state
- •Compose: keep Composables stateless where possible; state hoisted to ViewModel.
- •ViewModel exposes
StateFlow<UiState>and accepts events/intents. - •Handle loading/error/empty states explicitly.
- •Error handling
- •Normalize errors (network, auth, validation) to domain-friendly types.
- •Avoid leaking Retrofit/Room types into UI.
- •Performance & UX
- •Avoid recomposition traps; use stable models and
remember. - •Images: Coil; pagination for long lists; debounce inputs.
- •Accessibility basics: content descriptions, large text support.
- •Quality gates
- •Unit tests for domain and ViewModels.
- •UI tests where meaningful (Compose testing).
- •Lint/detekt/ktfmt if configured; keep build green.
Output expectations when making changes
- •Keep diffs localized; avoid broad refactors unless requested.
- •Add/adjust tests when changing behavior.
- •For new features: include navigation entry, UI state contract, and data wiring.