Slide 1

Slide 1 text

Desmitificando Clean Architecture en Android Armando Picón Mobile Engineer at Cornershop/Uber @devpicon https://linktr.ee/devpicon

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

¿Qué es una arquitectura?

Slide 4

Slide 4 text

¿Qué es una arquitectura? - Estructurar un proyecto - Distribuir componentes - Separar de responsabilidades - Está sujeta a diversos factores

Slide 5

Slide 5 text

¿Podemos estructurar un proyecto siguiendo la guía de Clean Architecture?

Slide 6

Slide 6 text

¿Podemos estructurar un proyecto siguiendo Clean Architecture? - Sí - Separation of concerns (separación de intereses) - Testing - El dominio como el centro de todo

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

: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

Slide 13

Slide 13 text

Presentation Domain Data

Slide 14

Slide 14 text

Presentation Domain Data Abstraction (Interface) Concrete implementation (Class)

Slide 15

Slide 15 text

Show me the code…

Slide 16

Slide 16 text

Nos vemos en la próxima! @DevPicon