Query Reaktif yang Mengembalikan Flow
Amati database di Compose.
Query Reaktif yang Mengembalikan Flow adalah pelajaran Jetpack Compose Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Jetpack Compose Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Jetpack Compose Academy mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Static Reads Go Stale
A one-time query gives you data once, but the table keeps changing. You want the UI to refresh whenever rows are added or removed.
Return a Flow Instead
Change a DAO query to return a Flow. Room now emits a fresh list every single time the underlying table changes. 🔄
@Query("SELECT * FROM Note")
fun observeAll(): Flow<List<Note>>No suspend on Flow Queries
A Flow query is not marked suspend. It returns the stream immediately, and emissions arrive as the data updates over time.
Room Watches the Tables
Behind the scenes Room tracks which tables a query touches. When any of them changes, it re-runs the query and emits a new value.
Collect the Flow Safely
In your ViewModel, collect the Flow inside a coroutine. Use viewModelScope so collection stops when the ViewModel clears.
viewModelScope.launch {
dao.observeAll().collect { notes -> /* update state */ }
}Turn Flow Into State
Convert the stream into observable UI state with stateIn, giving an initial value so the screen has something to show at once.
val notes = dao.observeAll().stateIn(viewModelScope, SharingStarted.Eagerly, emptyList())Observe It in Compose
In the Composable read the StateFlow with collectAsStateWithLifecycle. The list recomposes automatically on every change.
val notes by viewModel.notes.collectAsStateWithLifecycle()Insert and Watch It Appear
Insert a row anywhere and the Flow emits again, so the new item shows up instantly without you refreshing manually.
Map Inside the Flow
You can transform results with map before they reach the UI, like sorting or filtering, all reactively in the stream.
dao.observeAll().map { it.sortedBy(Note::text) }Flows Beat LiveData Here
Flow integrates cleanly with coroutines and Compose, making it the modern choice over LiveData for reactive Room queries.
One Source, Always Current
With reactive queries the database becomes your single source of truth, and the UI is just a reflection of it at every moment.
Quick Check
What happens when a Room DAO query returns a Flow?
Recap: Reactive Reads
You made queries return Flow, collected them into state, and watched Compose redraw on every change. Next you will organize this behind a repository.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Query Reaktif yang Mengembalikan Flow” gratis?
Ya — teks lengkap “Query Reaktif yang Mengembalikan Flow” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Jetpack Compose Academy, upgrade ke CoddyKit PRO. Kursus Jetpack Compose Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Query Reaktif yang Mengembalikan Flow”?
Amati database di Compose. Kamu berlatih Jetpack Compose Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Jetpack Compose Academy?
Tidak diperlukan pengalaman sebelumnya. Jetpack Compose Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Query Reaktif yang Mengembalikan Flow” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Jetpack Compose Academy ini?
Ya. Setiap pelajaran Jetpack Compose Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Entitas, DAO & Database
- Query Reaktif yang Mengembalikan Flow
- Pola Repository
- Strategi Caching Offline-First