0Pricing
Jetpack Compose Academy · Aula

Consultas Reativas que Retornam Flow

Observe o banco de dados no Compose.

Consultas Reativas que Retornam Flow é uma aula grátis de Jetpack Compose Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Jetpack Compose Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Jetpack Compose Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

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.

Perguntas Frequentes

A aula “Consultas Reativas que Retornam Flow” é grátis?

Sim — o texto completo de “Consultas Reativas que Retornam Flow” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Jetpack Compose Academy, atualize para CoddyKit PRO. O curso de Jetpack Compose Academy inclui 4 aulas no total.

O que vou aprender em “Consultas Reativas que Retornam Flow”?

Observe o banco de dados no Compose. Você pratica Jetpack Compose Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Jetpack Compose Academy?

Nenhuma experiência prévia é necessária. Jetpack Compose Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Consultas Reativas que Retornam Flow”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Jetpack Compose Academy?

Sim. Cada aula de Jetpack Compose Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Entidades, DAOs e o Banco de Dados
  2. Consultas Reativas que Retornam Flow
  3. O Padrão Repositório
  4. Estratégia de Cache Offline-First
← Voltar para Jetpack Compose Academy