Agent skill
Android State Management
Standards for ViewModel, StateFlow, and UI State Patterns
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/state
Metadata
Additional technical details for this skill
- labels
-
android state viewmodel flow
- triggers
-
{ "files": [ "**/*ViewModel.kt", "**/*UiState.kt" ], "keywords": [ "viewmodel", "stateflow", "livedata", "uistate" ] }
SKILL.md
Android State Management
Priority: P0
Implementation Guidelines
ViewModel Pattern
- Exposure: Expose ONE
StateFlow<UiState>via.asStateFlow(). - Scope: Use
viewModelScopefor all coroutines. - Initialization: Trigger initial load in
initorLaunchedEffect(once).
UI State (LCE)
- Type: sealed interface
UiState(Loading, Content, Error). - Immutability: Data classes inside should be
@Immutable.
Flow Lifecycle
- Collection: Use
collectAsStateWithLifecycle()in Compose. - Hot Flows: Use
SharingStarted.WhileSubscribed(5000)for shared resources.
Anti-Patterns
- LiveData:
**No LiveData**: Use StateFlow. - Mutable State:
**No Mutable Public**: Expose read-only Flow. - Context:
**No Context in VM**: Memory Leak Risk.
References
Didn't find tool you were looking for?