Slide 1

Slide 1 text

MVP Model-View-Presenter

Slide 2

Slide 2 text

Pablo Johnson @pablojohnson88 [email protected] https://github.com/pablo-johnson Desarrollador Android en Santex

Slide 3

Slide 3 text

¿Qué es MVP?

Slide 4

Slide 4 text

¿Qué es MVP? MVP es una ARQUITECTURA…

Slide 5

Slide 5 text

¿Qué es MVP? MVP es una ARQUITECTURA… MVP es un patrón que se aplica en la capa de presentación.

Slide 6

Slide 6 text

¿Qué es MVP? MVP es una ARQUITECTURA… MVP es un patrón que se aplica en la capa de presentación. ¿Capa de presentación?

Slide 7

Slide 7 text

Capaz de un Software

Slide 8

Slide 8 text

Capaz de un Software

Slide 9

Slide 9 text

Capa de presentación Aquí es donde reside la lógica de las vistas y animaciones

Slide 10

Slide 10 text

Capa de presentación Aquí es donde reside la lógica de las vistas y animaciones. Se puede implementar haciendo uso de algún patrón como MVC, MVVM o MVP.

Slide 11

Slide 11 text

MVP

Slide 12

Slide 12 text

Model ● El modelo (model) es la puerta o conexión hacia nuestra capa de dominio (domain)

Slide 13

Slide 13 text

Model ● El modelo (model) es la puerta o conexión hacia nuestra capa de dominio (domain) ● Es el encargado de mantener y encapsular la lógica de negocio de nuestra aplicación.

Slide 14

Slide 14 text

Model ● El modelo (model) es la puerta o conexión hacia nuestra capa de dominio (domain) ● Es el encargado de mantener y encapsular la lógica de negocio de nuestra aplicación. ● Si implementamos Clean Architecture el modelo probablemente sería un interactor el cual estaría encargado de implementar un caso de uso.

Slide 15

Slide 15 text

View ● NO es un componente Android (alguna clase que extienda de View) ni una pantalla.

Slide 16

Slide 16 text

View ● NO es un componente Android (alguna clase que extienda de View) ni una pantalla. ● Usualmente es una interfaz y sirve para conectar cada interacción del usuario con un método en el presenter.

Slide 17

Slide 17 text

View ● NO es un componente Android (alguna clase que extienda de View) ni una pantalla. ● Usualmente es una interfaz y sirve para conectar cada interacción del usuario con un método en el presenter. ● Suele ser implementada en un Activity, Fragment o un Custom View

Slide 18

Slide 18 text

Presenter ● Actua como mediador entre la vista y el modelo.

Slide 19

Slide 19 text

Presenter ● Actua como mediador entre la vista y el modelo. ● Obtiene data del modelo y la devuelve formateada a la vista.

Slide 20

Slide 20 text

MVP Fragment Activity CustomView Implementado por

Slide 21

Slide 21 text

¿Se puede tener más de una vista en la misma pantalla? La respuesta es...

Slide 22

Slide 22 text

¿Se puede tener más de una vista en la misma pantalla? La respuesta es... SI

Slide 23

Slide 23 text

¿Se puede tener más de una vista en la misma pantalla? La respuesta es... SI Veamos un ejemplo

Slide 24

Slide 24 text

¿Se puede tener más de una vista en la misma pantalla?

Slide 25

Slide 25 text

Y..¿Más de una implementación para una misma vista?

Slide 26

Slide 26 text

¿Por qué MVP?

Slide 27

Slide 27 text

¿Por qué MVP? La respuesta es….

Slide 28

Slide 28 text

¿Por qué MVP? La respuesta es…. SOLID

Slide 29

Slide 29 text

¿Por qué MVP? ● Single Responsibility Principle (SRP)

Slide 30

Slide 30 text

¿Por qué MVP? ● Single Responsibility Principle (SRP) ● Open-Close Principle (OCP)

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Veamos un ejemplo https://github.com/pablo-johnson/peruvian-poetry

Slide 33

Slide 33 text

Referencias ● Erik Jhordan ○ https://erikcaffrey.github.io/ANDROID-mvp/ ● Antonio Leiva ○ https://antonioleiva.com/mvp-android/ ● Christian Panadero ○ http://panavtec.me/modeling-presentation-layer ● Hannes Dorfmann ○ http://hannesdorfmann.com/android/mosby

Slide 34

Slide 34 text

Preguntas?

Slide 35

Slide 35 text

No content