AI agent skill · by @HoangNguyen0403
Android Legacy State
Integrate ViewModel state with XML Views using Coroutines and Lifecycle on Android. Use when managing state with repeatOnLifecycle or lifecycle-aware coroutines in Fragment/Activity; defer Compose state and generic Flow design to their specific skills.
Archived 2026-10-23 · Source updated 2026-09-15 · License: MIT. Check the original repository for the latest version.
SKILL.md instructions
# Android Legacy State Standards ## **Priority: P1 (HIGH)** ## Implementation Guidelines ### Flow Consumption - **Rule**: ALWAYS use `repeatOnLifecycle(Lifecycle.State.STARTED)` to collect flows in Views. - **Why**: Prevents crashes (collecting while view destroyed) and saves resources (stops collecting in background). ### LiveData vs Flow - **New Code**: Use `StateFlow` exclusively. - **Legacy**: If using LiveData, observe with `viewLifecycleOwner` (Fragment), NOT `this`. ## Anti-Patterns - **No launchWhenStarted/Resumed**: Deprecated. Use repeatOnLifecycle instead. - **No observe(this) in Fragments**: Use viewLifecycleOwner to prevent lifecycle leaks. ## References - [Flow Consumption Template](references/implementation.md)