Prévia do material em texto
Arquitetura de Aplicações Android 1. Qual é o principal objetivo de se utilizar uma arquitetura (como MVVM ou MVP) no Android? a) Fazer o aplicativo ocupar menos espaço na memória do celular. b) Promover a "Separação de Conceitos" (SOC), facilitando o teste, a manutenção e evitando que as Activities fiquem sobrecarregadas com lógica de negócio. c) Aumentar a velocidade de download na Google Play Store. d) Garantir que o aplicativo funcione sem precisar de internet. e) Permitir que o aplicativo seja instalado em iPhones também. 2. No padrão MVVM (Model-View-ViewModel), qual é a responsabilidade da "ViewModel"? a) Desenhar os botões e as cores da interface na tela. b) Atuar como um mediador que prepara e expõe os dados para a View, além de sobreviver a mudanças de configuração (como girar a tela). c) Salvar as fotos do usuário diretamente na galeria do celular. d) Gerenciar as permissões de GPS e Câmera no Manifesto. e) Substituir o banco de dados Room. 3. O que é o "LiveData" e por que ele é considerado "Lifecycle-aware" (ciente do ciclo de vida)? a) É um banco de dados que salva informações em tempo real. b) É um observador de dados que só envia atualizações para a View se ela estiver em um estado ativo (como onStart ou onResume), evitando vazamentos de memória e travamentos. c) É uma ferramenta que impede o celular de entrar em modo de descanso. d) É um tipo de animação usada para transição entre telas. e) É o sistema que conta quantos segundos o app está aberto. 4. No padrão MVVM, a "View" (Activity/Fragment) deve conter lógica de negócio complexa ou acesso a banco de dados? a) Sim, para ser mais rápido e direto. b) Não, a View deve ser "burra" e focar apenas em exibir os dados e capturar interações do usuário, delegando a lógica para a ViewModel. c) Apenas se o aplicativo for pequeno. d) Somente se estiver escrita em Java, em Kotlin é proibido. e) Apenas se o desenvolvedor estiver trabalhando sozinho. 5. Qual a função do componente "Data Binding" (Vinculação de Dados) no Android? a) Conectar o celular automaticamente a redes Wi-Fi públicas. b) Permitir que você conecte componentes da interface (XML) diretamente às fontes de dados na ViewModel, reduzindo a necessidade de usar o cansativo findViewById(). c) Criptografar os dados antes de enviá-los para a internet. d) Unir dois bancos de dados diferentes em um só. e) Traduzir o layout para outros idiomas automaticamente. 6. O "Android Jetpack" é um conjunto de bibliotecas que ajuda a seguir as melhores práticas. Qual componente do Jetpack é usado para gerenciar a navegação entre telas de forma visual e segura? a) Room. b) WorkManager. c) Navigation Component. d) CameraX. e) Paging Library. 7. O que é o "Repository Pattern" (Padrão de Repositório) frequentemente usado com MVVM? a) É uma pasta onde guardamos os manuais do usuário. b) É uma camada que decide se os dados devem vir do cache local (banco de dados) ou da rede (API), isolando a fonte de dados do restante do app. c) É o local onde o Google guarda o código-fonte do Android. d) É uma ferramenta para deletar dados antigos do servidor. e) É um tipo de backup físico em cartões SD. 8. Qual a diferença fundamental entre o antigo padrão MVP (Model-View-Presenter) e o atual MVVM? a) No MVP, o Presenter tem uma referência direta da View; no MVVM, a ViewModel não sabe quem é a View, ela apenas expõe dados que a View observa. b) O MVP só funciona em Java e o MVVM só em Kotlin. c) O MVVM é mais lento que o MVP. d) O MVP exige que o celular tenha root. e) Não há diferença, são apenas nomes diferentes para a mesma técnica. 9. Para que serve o componente "WorkManager" do Jetpack? a) Para gerenciar as tarefas dos desenvolvedores durante o dia. b) Para executar tarefas em segundo plano que precisam ser garantidas, mesmo que o app feche ou o celular reinicie (ex: backup de dados). c) Para mudar o papel de parede do celular automaticamente. d) Para medir a performance do processador em tempo real. e) Para baixar jogos da Play Store mais rápido. 10. Atualmente, a Google introduziu o "Jetpack Compose". O que ele muda na criação de interfaces? a) Ele obriga o uso de mouses para desenhar as telas. b) Ele substitui o XML por uma forma puramente programática (declarativa) de criar interfaces usando apenas código Kotlin. c) Ele permite que o app funcione sem código-fonte. d) Ele é um sistema que desenha telas apenas para relógios inteligentes. e) Ele remove a necessidade de usar o Android Studio.