Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

GUIA TÉCNICO 01 • ENGENHARIA DE SOFTWARE MOBILE
Arquiteturas e Padrões de Projeto Mobile
Estruturação de camadas, gerenciamento de estado previsível e escalabilidade de código
Aplicativos móveis operam em ambientes sujeitos a interrupções frequentes, mudanças de
configuração de tela, restrições de memória e ciclos de vida rigorosos impostos pelo sistema
operacional. Uma arquitetura bem definida isola as regras de negócio dos detalhes de interface e
infraestrutura, evitando o acoplamento excessivo às classes do sistema.
1. Padrões de Apresentação
A camada de apresentação conecta os dados à interface gráfica e reage às interações do usuário. A
escolha do padrão influencia diretamente a testabilidade e a clareza do fluxo de dados.
Padrão Funcionamento e Fluxo Cenário Recomendado
MVC
(Model-View-
Controller)
O Controller intermedia ações do usuário e
atualizações no Model. Em plataformas mobile,
tende a concentrar lógica de ciclo de vida e
layout na mesma classe.
Protótipos rápidos ou telas estáticas
com mínima lógica de estado.
MVP
(Model-View-
Presenter)
A View é passiva e delega eventos ao
Presenter por meio de contratos (interfaces). O
Presenter coordena o Model e invoca métodos
explícitos na View.
Projetos legados com interfaces
imperativas que exigem testes unitários
isolados.
MVVM
(Model-View-
ViewModel)
O ViewModel expõe fluxos observáveis de
estado sem manter referência direta à View. A
interface assina esses fluxos e se recompõe
automaticamente.
Padrão consolidado para interfaces
declarativas (SwiftUI e Jetpack
Compose).
MVI
(Model-View-
Intent)
Adota fluxo unidirecional de dados (UDF).
Intenções do usuário geram ações que
reduzem o estado atual em um novo estado
imutável único.
Telas complexas com múltiplos estados
concorrentes e necessidade de
rastreabilidade.
2. Clean Architecture em Camadas
A separação em camadas concêntricas garante que a regra de dependência aponte sempre para
dentro: camadas externas conhecem as internas, mas o núcleo da aplicação permanece agnóstico a
frameworks, bancos de dados ou bibliotecas de rede.
Série Desenvolvimento Mobile • Módulo 01 Page 1 of 2
Camada de Domínio (Domain): Contém as entidades corporativas, casos de uso (Use Cases /
Interactors) e interfaces de repositórios. É escrita exclusivamente na linguagem pura da
plataforma.
Camada de Dados (Data): Implementa os contratos definidos no domínio, coordenando fontes
remotas (APIs REST/GraphQL), fontes locais e mapeadores (DTOs para modelos de domínio).
Camada de Apresentação (Presentation): Abriga componentes visuais, gerenciadores de
estado (ViewModels/Stores) e modelos específicos de exibição na tela.
3. Modularização e Injeção de Dependência
À medida que a equipe cresce, manter todo o código em um único módulo eleva o tempo de
compilação e favorece dependências circulares. A divisão em módulos por funcionalidade (feature
modules) e módulos utilitários compartilhados (core modules) permite compilação paralela,
encapsulamento rigoroso de visibilidade e entrega sob demanda.
Para conectar essas peças sem acoplamento rígido, utiliza-se a Injeção de Dependência (DI).
Ferramentas em tempo de compilação ou em tempo de execução fornecem instâncias configuradas
conforme o escopo desejado (singleton da aplicação, ciclo de vida de sessão autenticada ou escopo
de tela), facilitando a substituição por dublês de teste durante a verificação automatizada.
Princípio Fundamental: A interface gráfica deve ser apenas uma função do estado atual. Quando o
estado é imutável e centralizado, elimina-se uma classe inteira de falhas causadas por
dessincronização entre componentes visuais e dados subjacentes.
Série Desenvolvimento Mobile • Módulo 01 Page 2 of 2

Mais conteúdos dessa disciplina