Sobes.tech
Junior — Middle

Como implementar e gerir fluxos de dados com Flow no Jetpack Compose?

sobes.tech IA

Resposta da IA

No Jetpack Compose, para gerir fluxos de dados, costuma-se usar Kotlin Flow, que permite receber e processar dados de forma assíncrona.

A principal forma de integrar o Flow no Compose é usar a função collectAsState(), que recolhe os valores do Flow e os converte em State, facilitando a atualização reativa da UI.

Exemplo:

@Composable
fun UserScreen(viewModel: UserViewModel) {
    val userState by viewModel.userFlow.collectAsState(initial = User())

    Text(text = "Olá, ${userState.name}")
}

class UserViewModel : ViewModel() {
    private val _userFlow = MutableStateFlow(User())
    val userFlow: StateFlow<User> = _userFlow

    // Atualizar dados
    fun updateUser(newUser: User) {
        _userFlow.value = newUser
    }
}

Dessa forma, o Compose subscreve automaticamente às atualizações do Flow e redesenha a UI quando os dados mudam. Para casos mais complexos, pode-se usar LaunchedEffect e collect dentro de um Composable.