Pular para conteúdo

Exercícios 07 - Arquitetura MVVM 🏗️

🟢 Fáceis

  1. Responsabilidades: No padrão MVVM, quem é responsável por decidir o que mostrar na tela? (Model, View ou ViewModel?)
  2. Ciclo de Vida: O que acontece com os dados dentro de um ViewModel quando a tela gira (rotaciona)?

🟡 Médios

  1. LiveData: Explique o conceito de "Oberver Pattern" usado no LiveData. Por que a Activity precisa "observar" os dados?
  2. Separação: Por que não devemos passar uma referência da View (ex: um TextView) para dentro do ViewModel? (Dica: pense em vazamento de memória e ciclo de vida).

🔴 Desafio

  1. Arquitetura Real: Imagine um app de Clima.

    • Model: Classe ClimaRepository que pega dados da API.
    • ViewModel: Chama o repositório e guarda val temperatura = MutableLiveData<Float>().
    • View: Mostra o texto "25°C".

    Se a internet cair no meio da requisição, quem deve tratar o erro e onde deve ficar a mensagem de erro (String) para ser exibida? No Model, ViewModel ou View?

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Responsabilidades **Resposta Comentada:** - **Fundamentação:** No contexto de **Arquitetura Moderna (MVVM) ️**, o conceito abordado (Responsabilidades) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Ciclo de Vida **Resposta Comentada:** - **Fundamentação:** No contexto de **Arquitetura Moderna (MVVM) ️**, o conceito abordado (Ciclo de Vida) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: LiveData **Resposta Comentada:** - **Fundamentação:** No contexto de **Arquitetura Moderna (MVVM) ️**, o conceito abordado (LiveData) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: Separação **Resposta Comentada:** - **Fundamentação:** No contexto de **Arquitetura Moderna (MVVM) ️**, o conceito abordado (Separação) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: Arquitetura Real **Resposta Comentada:** - **Fundamentação:** No contexto de **Arquitetura Moderna (MVVM) ️**, o conceito abordado (Arquitetura Real) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais.