No. The `ViewModel` should own all state mutations; exposing a public `MutableStateFlow` allows the UI (or any consumer) to bypass that ownership and write invalid state directly. Keep the mutable flow private and expose exactly one read-only flow: ```kotlin private val _uiState = MutableStateFlow<UiState>(UiState.Loading) val uiState: StateFlow<UiState> = _uiState.asStateFlow() ``` The UI should send intent-style calls such as `viewModel.retry()` or `viewModel.onQueryChanged(query)`. The `Vi...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill android-state --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Android State?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-android-state-agent-skills-standard)More formats (shields.io, HTML) on the badges page.
No. The `ViewModel` should own all state mutations; exposing a public
`MutableStateFlow` allows the UI (or any consumer) to bypass that ownership and
write invalid state directly.
Keep the mutable flow private and expose exactly one read-only flow:
```kotlin
private val _uiState = MutableStateFlow<UiState>(UiState.Loading)
val uiState: StateFlow<UiState> = _uiState.asStateFlow()
```
The UI should send intent-style calls such as `viewModel.retry()` or
`viewModel.onQueryChanged(query)`. The `ViewModel` performs the update from its
`viewModelScope` coroutine. This keeps transitions in one place and makes the
screen unable to mutate the state contract directly. For new code, use
`StateFlow` rather than `LiveData`; do not put an `Activity` context in the
`ViewModel`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!
Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.
Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation
SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.
Python backend development expertise for FastAPI, security patterns, database operations, Upstash integrations, and code quality. Use when: (1) Building REST APIs with FastAPI, (2) Implementing JWT/OAuth2 authentication, (3) Setting up SQLAlchemy/async databases, (4) Integrating Redis/Upstash caching, (5) Refactoring AI-generated Python code (deslopification), (6) Designing API patterns, or (7) Optimizing backend performance.
PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.