Quiz 07 - Arquitetura MVVM 🏗️
1. O que significa a sigla MVVM?
Mobile View Variable Model
Model - View - ViewModel
Master View Visual Machine
Multiple View Version Method
2. Na arquitetura MVVM, qual é a responsabilidade da camada VIEW?
Realizar cálculos matemáticos complexos.
Salvar dados no banco de dados.
Apenas exibir a interface e reagir a eventos do usuário (toques), sem lógica de negócio.
Gerenciar a conexão de rede.
3. Qual componente é responsável por sobreviver a mudanças de configuração (como girar a tela) e guardar os dados da UI?
Activity
Intent
ViewModel
Fragment
4. O que é o "LiveData"?
Um serviço de streaming do Android.
Um tipo de bateria de longa duração.
Um container de dados observável que respeita o ciclo de vida da Activity/Fragment.
O banco de dados em tempo real do Google.
5. Qual a vantagem de uma Activity "Observar" (observe) um dado no ViewModel em vez de pedir o dado manualmente?
Gasta menos internet.
Garante que a UI esteja sempre sincronizada com os dados reais automaticamente.
Aumenta a velocidade do processador.
Deleta o cache do app.
6. Onde deve ficar a lógica de busca de dados (seja de uma API ou Banco)?
No método onCreate da Activity.
No Model (frequentemente gerenciado por um Repository).
Dentro do arquivo XML de layout.
No arquivo AndroidManifest.
7. Por que a arquitetura MVVM facilita a escrita de "Testes Unitários"?
Porque você não precisa testar nada.
Porque o Kotlin testa o código sozinho.
Porque a lógica está isolada no ViewModel, que não depende de componentes visuais do Android para rodar.
Porque o projeto fica com menos arquivos.
8. O que acontece com o ViewModel quando a Activity que o criou é destruída definitivamente (ex: usuário apertou voltar)?
Ele fica na memória para sempre.
Ele também é destruído (limpo) para liberar memória.
Ele se move para outro aplicativo.
Ele reinicia o celular.
9. Como o ViewModel se comunica de volta com a Activity no MVVM?
Chamando `activity.updateUI()`.
Usando uma Intent.
Através de LiveData ou StateFlow (Fluxo de dados observável).
Enviando um e-mail.
10. No iOS moderno (SwiftUI), qual é o conceito que mais se assemelha ao ViewModel operando com LiveData?
Structs
@IBAction
@ObservableObject ou @StateObject
Core Graphics