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

Desmitificando Clean Architecture en Android

Desmitificando Clean Architecture en Android

Armando Picón

June 22, 2022
Tweet

More Decks by Armando Picón

Other Decks in Programming

Transcript

  1. Desmitificando Clean Architecture en Android Armando Picón Mobile Engineer at

    Cornershop/Uber @devpicon https://linktr.ee/devpicon
  2. Algunas verdades sobre Clean Architecture - Es el título de

    un libro y un post de Uncle Bob - No es una arquitectura - Reúne una serie de principios comunes desde el análisis de múltiples arquitecturas - Se fundamenta en la aplicación de principios SOLID - La capa de Dominio (Domain) es el punto central
  3. ¿Qué es una arquitectura? - Estructurar un proyecto - Distribuir

    componentes - Separar de responsabilidades - Está sujeta a diversos factores
  4. ¿Podemos estructurar un proyecto siguiendo Clean Architecture? - Sí -

    Separation of concerns (separación de intereses) - Testing - El dominio como el centro de todo
  5. Frameworks and drivers Interface Adapters Business Rules (Interactors) Domain Logic

    UI Data sources ViewModel Repository Use Cases Entities
  6. Frameworks and drivers Interface Adapters Business Rules (Interactors) Domain Logic

    UI Data sources ViewModel Repository Use Cases Entities Dependency rule
  7. Frameworks and drivers Interface Adapters Business Rules (Interactors) Domain Logic

    UI Data sources ViewModel Repository Use Cases Entities Data flow
  8. Presentation Domain Data - Compose - View-based system (XML) -

    UI Components (Activities, Fragments, Composables, etc) - Notifications - ViewModels Modules
  9. Presentation Domain Data - Compose - View-based system (XML) -

    UI Components (Activities, Fragments, Composables, etc) - Notifications - ViewModels Modules - Room - Networking library (Retrofit, Ktor, Volley, etc) - SQLite - ContentProviders - Firebase - SharedPreferences
  10. :Presentation :Domain :Data - Compose - View-based system (XML) -

    UI Components (Activities, Fragments, Composables, etc) - Notifications - ViewModels Modules - Room - Networking library (Retrofit, Ktor, Volley, etc) - SQLite - ContentProviders - Firebase - SharedPreferences - Datasources - Repository implementations - UseCases / Interactor - Entities - Repository abstraction