android--kotlin-jetpack-compose--media3listed
Install: claude install-skill lgzarturo/codeconductor
# Android + Kotlin (Jetpack Compose & Media3)
This playbook defines the architecture, UI design system, performance guidelines, and testing strategy for native Android applications.
---
## 1. Lead Architect & Modularization
### Architecture (MVI / MVVM with Clean Architecture)
- Prefer **MVI (Model-View-Intent)** for state management. Ensure a strict unidirectional data flow:
- **UiState**: Single source of truth for the UI state.
- **UiIntent**: Actions initiated by the user or system.
- **UiEffect**: One-time events (navigation, toasts, snackbars).
- Separate the project into clean logical modules:
- `app`: Application entry point, launcher activity, global dependency injection configuration.
- `core`: Shared resources, network layer, media playback logic (ExoPlayer/Media3), storage.
- `feature`: Individual business features (isolated and independent of other features).
### Dependency Injection (Hilt)
- Annotate the Application class with `@HiltAndroidApp`.
- Annotate Activities and Fragments with `@AndroidEntryPoint`.
- Use constructor injection for ViewModels with `@HiltViewModel`.
---
## 2. Jetpack Compose UI/UX
### Recomposition & State Management
- Consume `StateFlow` from ViewModels safely using `collectAsStateWithLifecycle()` to respect the activity lifecycle.
- Keep data models immutable. Mark configuration classes with `@Immutable` or `@Stable` to prevent redundant recompositions.
- Use `contentType` and `key` in `LazyColumn` and `LazyRow` to op