Globalcode – Open4education
Trilha – Android
Pierry Borges
Desenvolvedor Android
Globalcode – Open4education
Como está a arquitetura do seu
app?
Globalcode – Open4education
Agenda
• Cenário atual
• A importância de uma arquitetura robusta
• SOLID
• Repository Pattern
• Dependency Injection no Android
Globalcode – Open4education
Cenário atual
• Aplicativos devem ser desenvolvidos em 4 horas
• Apenas a interface é importante
• Minimum Viable Product
Globalcode – Open4education
Arquitetura robusta
• Porque? Medo de dar manutenção...
• Como? SOLID é basico.
• Quando? Em todos.
• Pra quem? Para nós! devs
Globalcode – Open4education
SOLID
Identificado por Robert C. Martin (Uncle Bob)
VANTAGENS
Manunteção com menor esforço
Fácil entendimento
Máximo de reaproveitamento
Globalcode – Open4education
• SRP (Principio da Responsabilidade Única)
Uma classe deve ter um, e somente um, motivo para
mudar.
Globalcode – Open4education
• OCP (Princípio Aberto-Fechado)
Entidades devem estar abertas para extensão, mas
fechadas para modificação.
Globalcode – Open4education
• LSP (Princípio da Substituição de Liskov)
As classes derivadas devem ser substituíveis por
suas classes base.
Globalcode – Open4education
• ISP (Princípio da Segregação da Interface)
Muitas interfaces específicas são melhores do que
uma interface única.
Globalcode – Open4education
• DIP (Princípio da inversão da dependência)
Dependa de uma abstração e não de uma
implementação.
Globalcode – Open4education
Repository Pattern
• O que é? Isolar a lógica de acesso a dados
• Por que? Desacoplamento das regras de negócio
Globalcode – Open4education
Dependency Injection
• O que é? Baixo o nível de acoplamento
Globalcode – Open4education
Dependency Injection
• RoboGuice
Fácil configuração, rápido e o container funciona
muito bem, mas utiliza reflection, o que pode causar
perda de desempenho.
Globalcode – Open4education
Dependency Injection
• Dagger 2
O mais completo e melhor, para iniciantes torna-se
um pouco complexo.
Globalcode – Open4education
Dependency Injection
• Android Annotations
Fácil configuração e não possui problemas de
desempenho, mas não possui container de injeção
de dependência.
Globalcode – Open4education
Obrigado
Pierry
https://github.com/Pierry/TDC-Android-2015-POA
pierrydev
pierry.github.io
pieerry@gmail.com

como esta a arquitetura do seu app?