Stop Calling notifyDataSetChanged: Room Flow and Lifecycle-Aware UI State
Room DAOs returning Flow eliminate manual refresh calls by re-querying on table changes. Here is how to wire StateFlow and stateIn into your ViewModel without stale UI bugs.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Room DAOs returning Flow eliminate manual refresh calls by re-querying on table changes. Here is how to wire StateFlow and stateIn into your ViewModel without stale UI bugs.
AlarmManager drains battery and fights Doze mode. WorkManager uses JobScheduler to batch periodic syncs efficiently, with clear trade-offs for exact timing.
Learn how Kotlin’s structured concurrency eliminates common async pitfalls by tying coroutine lifecycles to scopes, with a concrete example of parallel network calls and guidance on dispatcher selection.
A big List kills feed performance. Here's how to stream Room data with Paging 3 and LazyColumn, plus the invalidation and placeholder trade-offs you need to know.
Learn how rememberSaveable ties UI state to the Compose tree, the Bundle trust model, and the failure modes you must verify.
Learn how Realm's notification tokens automatically update Android UI components, eliminating manual refresh code while highlighting UI‑thread considerations and cleanup practices.
Learn how to write, test, and ship a Capacitor plugin that bridges JavaScript to native Swift and Kotlin, including threading, build steps, and verification.
A decision guide for the LazyColumn key parameter: when stable IDs matter, why index keys are a trap, and how to verify state survives inserts and reorders.
Rotation wipes Compose state held in plain remember. Hoist it to the caller and switch to rememberSaveable, and your forms, toggles, and counters survive configuration changes with no ViewModel boilerplate.