HoangNguyen0403

Android State Management

Standards for ViewModel, StateFlow, and UI State Patterns

HoangNguyen0403 501 148 Updated 4mo ago

Resources

1
GitHub

Install

npx skillscat add hoangnguyen0403/agent-skills-standard/android-state-management

Install via the SkillsCat registry.

SKILL.md

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