Sobes.tech
Junior — Middle

Como implementar o padrão MVVM em aplicações que usam Jetpack Compose para a interface de utilizador?

sobes.tech IA

Resposta da IA

No Jetpack Compose, o padrão MVVM é implementado através da separação em:

  • Model — lógica de negócio e dados.
  • ViewModel — mantém o estado da interface de utilizador e processa a lógica de interação.
  • View (Compose UI) — exibe os dados e reage às mudanças de estado.

Exemplo:

class MyViewModel : ViewModel() {
    // Estado da UI, por exemplo, um campo de texto
    var text by mutableStateOf("")
        private set

    fun onTextChanged(newText: String) {
        text = newText
    }
}

@Composable
fun MyScreen(viewModel: MyViewModel = viewModel()) {
    val text = viewModel.text
    TextField(
        value = text,
        onValueChange = { viewModel.onTextChanged(it) },
        label = { Text("Digite o texto") }
    )
}

Aqui, o ViewModel contém o estado e métodos para alterá-lo. A UI Compose subscreve-se ao estado através de mutableStateOf, atualizando-se automaticamente com as mudanças.

Este método garante uma separação clara de responsabilidades e facilita os testes.