Skip to content
Back to skills

Android State Management

ASecurity

Standards for ViewModel, StateFlow, and UI State Patterns

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
documentation

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill android-state-management --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Android State Management?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Android State Management
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-android-state-management/badge)](https://www.skillsdirectory.com/skills/david-li0406-android-state-management)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Android State Management
description: Standards for ViewModel, StateFlow, and UI State Patterns
metadata:
  labels: [android, state, viewmodel, flow]
  triggers:
    files: ['**/*ViewModel.kt', '**/*UiState.kt']
    keywords: [viewmodel, stateflow, livedata, uistate]
---

# Android State Management

## **Priority: P0**

## Implementation Guidelines

### ViewModel Pattern

- **Exposure**: Expose ONE `StateFlow<UiState>` via `.asStateFlow()`.
- **Scope**: Use `viewModelScope` for all coroutines.
- **Initialization**: Trigger initial load in `init` or `LaunchedEffect` (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

- [Templates](references/implementation.md)

Files in this skill

  • SKILL.md1.1 KB
  • references/implementation.md1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…