O documento descreve o padrão arquitetural VIPER, que promove uma arquitetura limpa dividida em módulos com único propósito. Inicialmente, mostra como dividir uma classe Car em DrivableCar, MaintainableCar e ComfortableCar para seguir o princípio da responsabilidade única. Posteriormente, introduz os papéis View, Presenter, Interactor, Entity e Router para organizar a arquitetura em camadas.
17. Interactor
▪ Implementação dos casos de uso
▪ Integração com API, DB...
▪ Envia os dados recebidos externamente
para o Presenter realizar o tratamento
necessário antes de atualizar a View
▪O trabalho realizado pelo Interactor deve
ser independente de qualquer UI
21. Router
▪ Responsável pela transação entre
diferentes módulos
▪ Responsável pela inicialização do próximo
módulo a ser chamado.
▪Responsável pela customização de
animações entre telas
22. Conclusão
▪ Maior facilidade em encontrar e resolver bugs
▪ Código mais "limpo" e compacto
▪ Gera uma maior reusabilidade do código
▪ Maior facilidade em adicionar/modificar features
▪ Fácil e rápido de escrever testes automatizados
confiáveis