Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android Clean Architecture

Android Clean Architecture

Introdução ao Clean Architecture aplicado ao Android.

Felipe Costa

October 28, 2015
Tweet

More Decks by Felipe Costa

Other Decks in Programming

Transcript

  1. ANDROID MVC ▸ Trygve Reenskaug (1979) ▸ Smalltalk ▸ GUI

    ▸ UI X lógica ▸ Componentes Principais: Model, View, Controller MODEL CONTROLLER VIEW UPDATES MANIPULATES USER SEES USES
  2. ANDROID CONTROLLER ▸ Intermediação entre View e Model ▸ Envio

    de comandos para o Model ▸ Envio de comandos para a View
  3. ANDROID PROBLEMAS DO MVC ▸ Mistura entre lógica de domínio/negócio/aplicação

    ▸ Fat Controller ▸ Fat model, skinny controller ▸ God objects ▸ Difícil de testar (Unit Test)
  4. CLEAN ARCHITECTURE USE CASES ▸ Regras de negócio ▸ Controle

    do fluxo de dados de e para as entities ▸ Interactors
  5. CLEAN ARCHITECTURE INTERFACE ADAPTERS ▸ Conversão dos dados para um

    formato mais conviniente para os use Cases e entities ▸ Presenters e Controllers
  6. CLEAN ARCHITECTURE CROSSING BOUNDARIES PRESENTER USE CASE OUTPUT PORT USE

    CASE INPUT PORT USE CASE INTERACTION CONTROLLER CONTROLE DE FLUXO
  7. CLEAN ARCHITECTURE DEPENDENCY RULE ▸ A dependência de código somente

    pode apontar para dentro ▸ Os círculos internos não podem conhecer nada sobre os círculos externos ▸ Não está restrito a quantidade de círculos
  8. CLEAN ARCHITECTURE CONSEQUÊNCIAS ▸ Independência de Framework ▸ Testável (Unit

    Test) ▸ Independência de UI ▸ Independência de DB ▸ Independência de agentes externos
  9. DO NOT DEPEND ON THINGS THAT CHANGE OR ARE LIKELY

    TO CHANGE Uncle Bob CLEAN ARCHITECTURE
  10. ANDROID ARCHITECTURE DOMAIN LAYER JAVA BUSINESS RULES DATA LAYER ANDROID

    LIBRARY DATA PRESENTATION LAYER JAVA MVC MVP MVVM APPLICATION LAYER ANDROID APP UI
  11. ANDROID ARCHITECTURE CONSEQUÊNCIAS ▸ Fácil de Manter ▸ Fácil de

    testar (Unit Test) ▸ Muito coesa ▸ Desacoplada ▸ S.O.L.I.D
  12. ANDROID ARCHITECTURE LINKS ▸ https://blog.8thlight.com/uncle-bob/2012/08/13/the-clean- architecture.html ▸ https://vimeo.com/43612849 ▸ http://fernandocejas.com/2014/09/03/architecting-

    android-the-clean-way/ ▸ https://github.com/android10/Android-CleanArchitecture ▸ https://github.com/mcharmas/shoppinglist-clean- architecture-example
  13. QA