SlideShare una empresa de Scribd logo
Alex Mejicanos
@alex_mejicanos
fb.com/alexmejicanosgt
http://alexmejicanos.com
¿Que es un Patrón?
Los patrones son la base para la búsqueda de soluciones a
problemas comunes en el desarrollo de software y otros
ámbitos referentes al diseño de interacción o interfaces.
Patrones de arquitectura: Aquellos que expresan un esquema
organizativo estructural fundamental para sistemas de
software.
Patrones de Diseño: Aquellos que expresan esquemas para
definir estructuras de diseño (o sus relaciones) con las que
construir sistemas de software.
¿Que es un Patrón?
Patrones de arquitectura: Los patrones de arquitectura, nos
permiten mantener un proyecto limpio, escalable, fácil de
mantener y de testear. .
Patrones de Diseño: Nos muestran soluciones al momento de
diseñar un software, soluciones de estructura de clases y
reutilización de componentes.
¿Los patrones son para Android?
Los patrones de diseño y de arquitectura no son nuevos, están
con nosotros aproximadamente desde los años 70 y sus
creadores los comenzaron a utilizar para solucionar problemas
de sobre escritura de código en los proyectos web que
implementaban.
Varias tecnologías se han adaptado a utilizar este patrón y en
muchos de los casos los desarrolladores adecuan el lenguaje a
los patrones.
Patrones de Arquitectura para Android
MVC
El modelo-vista-controlador (MVC) es un patrón de
arquitectura de software, que separa los datos y la
lógica de negocio de una aplicación de la interfaz de
usuario y el módulo encargado de gestionar los
eventos y las comunicaciones. Para ello MVC
propone la construcción de tres componentes
distintos que son el modelo, la vista, y el
controlador, es decir, por un lado define
componentes para la representación de la
información, y por otro lado para la interacción del
usuario. Este patrón de arquitectura de software se
basa en las ideas de reutilización de código y la
separación de conceptos, características que buscan
facilitar la tarea de desarrollo de aplicaciones y su
posterior mantenimiento.
MVP
El modelo-vista-presentar (MVP) es una derivación
del patrón arquitectónico modelo-vista-controlador
(MVC), y es utilizado mayoritariamente para
construir interfaces de usuario. En MVP el
presentador asume la funcionalidad del “medio-
hombre”. En MVP, toda lógica de presentación es
colocada al presentador.
Diferencias
1. En el MVC, el modelo notifica a la vista cualquier cambio que sufra el estado del modelo. La información
puede pasarse en la propia notificación, o después de la notificación, la vista puede consultar el modelo
directamente para obtener los datos actualizados. Por el contrario, en el MVP, la vista no sabe nada sobre
el modelo y la función del presentador es la de mediar entre ambos, enlazando los datos con la vista.
2. En el modelo MVC, la vista tiende a tener más lógica porque es responsable de manejar las notificaciones
del modelo y de procesar los datos. En el modelo MVP, esa lógica se encuentra en el presentador, haciendo
a la vista “estúpida”. Su única función es representar la información que el presentador le ha
proporcionado.
3. En MVC, el modelo tiene lógica extra para interactuar con la vista. En el MVP, esta lógica se encontraría en
el presentador.
Capas del patrón MVP
MPV en Android
Ejemplo
• El usuario introduce su usuario y clave.
• La Vista ejecuta el método del presentador a hacer Login.
• El Presentador hacer la llamada al ApiCliente.
• Si todo ha ido bien, el Presentador notifica a la vista que el login fue exitoso. En Caso de que se haya producido
algún error, muestra una alerta con un mensaje de error.
Repo:
https://github.com/alexmeji/MVPAFest
Gracias

Más contenido relacionado

La actualidad más candente

Estandares y protocolos.pptx
Estandares y protocolos.pptxEstandares y protocolos.pptx
Estandares y protocolos.pptx
Ram Vazquez
 
Medio de transmisión
Medio de transmisiónMedio de transmisión
Medio de transmisión
Blanca Rodriguez
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de Software
Lia IS
 
Funcion de la tabla de enrutamiento
Funcion de la tabla de enrutamientoFuncion de la tabla de enrutamiento
Funcion de la tabla de enrutamiento
Jose Hernandez Landa
 
10 sistemas gestores de base de datos
10 sistemas gestores de base de datos10 sistemas gestores de base de datos
10 sistemas gestores de base de datos
Gusttavo Nipas
 
Metodologías de Ingeniería de Requisitos
Metodologías de Ingeniería de Requisitos  Metodologías de Ingeniería de Requisitos
Metodologías de Ingeniería de Requisitos
Beto Vega
 
Requerimientos del software
Requerimientos del softwareRequerimientos del software
Requerimientos del software
Beiilyn Pernaletee
 
Capas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaCapas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capa
aeross
 
Presentacion modelo osi
Presentacion modelo osiPresentacion modelo osi
Presentacion modelo osi
elyoarabia
 
IEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del softwareIEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del software
Jesús Navarro
 
Zonas dmz y_puertos
Zonas dmz y_puertosZonas dmz y_puertos
Zonas dmz y_puertos
Karina Gutiérrez
 
Modelo CMMI
Modelo CMMIModelo CMMI
Cuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WANCuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WAN
FlavioRobledo
 
Programación Orientada a Objetos para Python
Programación Orientada a Objetos para PythonProgramación Orientada a Objetos para Python
Programación Orientada a Objetos para Python
José Luis Chiquete Valdivieso
 
Metodología Mobile-D.pdf
Metodología Mobile-D.pdfMetodología Mobile-D.pdf
Metodología Mobile-D.pdf
VivianaIsabelCalvaTu
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
Miguel Mendez
 
Que es el Subneteo
Que es el SubneteoQue es el Subneteo
Que es el Subneteo
samueldom231297
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del Software
Janeth Jimenez
 
Normas tia
Normas tiaNormas tia
Normas tia
ciro hernandez
 
Protocolos del Modelo OSI
Protocolos del Modelo OSIProtocolos del Modelo OSI
Protocolos del Modelo OSI
Paola Orellana
 

La actualidad más candente (20)

Estandares y protocolos.pptx
Estandares y protocolos.pptxEstandares y protocolos.pptx
Estandares y protocolos.pptx
 
Medio de transmisión
Medio de transmisiónMedio de transmisión
Medio de transmisión
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de Software
 
Funcion de la tabla de enrutamiento
Funcion de la tabla de enrutamientoFuncion de la tabla de enrutamiento
Funcion de la tabla de enrutamiento
 
10 sistemas gestores de base de datos
10 sistemas gestores de base de datos10 sistemas gestores de base de datos
10 sistemas gestores de base de datos
 
Metodologías de Ingeniería de Requisitos
Metodologías de Ingeniería de Requisitos  Metodologías de Ingeniería de Requisitos
Metodologías de Ingeniería de Requisitos
 
Requerimientos del software
Requerimientos del softwareRequerimientos del software
Requerimientos del software
 
Capas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaCapas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capa
 
Presentacion modelo osi
Presentacion modelo osiPresentacion modelo osi
Presentacion modelo osi
 
IEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del softwareIEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del software
 
Zonas dmz y_puertos
Zonas dmz y_puertosZonas dmz y_puertos
Zonas dmz y_puertos
 
Modelo CMMI
Modelo CMMIModelo CMMI
Modelo CMMI
 
Cuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WANCuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WAN
 
Programación Orientada a Objetos para Python
Programación Orientada a Objetos para PythonProgramación Orientada a Objetos para Python
Programación Orientada a Objetos para Python
 
Metodología Mobile-D.pdf
Metodología Mobile-D.pdfMetodología Mobile-D.pdf
Metodología Mobile-D.pdf
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
 
Que es el Subneteo
Que es el SubneteoQue es el Subneteo
Que es el Subneteo
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del Software
 
Normas tia
Normas tiaNormas tia
Normas tia
 
Protocolos del Modelo OSI
Protocolos del Modelo OSIProtocolos del Modelo OSI
Protocolos del Modelo OSI
 

Similar a MVC vs MVP

MVC.ppt
MVC.pptMVC.ppt
MVC.ppt
PachinLoco
 
Fundamentos
FundamentosFundamentos
Fundamentos
Monica Naranjo
 
3 1 mde mda
3 1 mde mda3 1 mde mda
3 1 mde mda
landeta_p
 
S01-s1-MVC.pptx
S01-s1-MVC.pptxS01-s1-MVC.pptx
S01-s1-MVC.pptx
AnthonyJosuVillar
 
S8 arely medina_power_point
S8 arely medina_power_pointS8 arely medina_power_point
S8 arely medina_power_point
Arely_Medina
 
Android mvp
Android mvpAndroid mvp
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
Ramiro Estigarribia Canese
 
Uml
UmlUml
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
Johns Chacon
 
Fundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a ObjetosFundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a Objetos
forwer1223
 
Patrones de-diseño
Patrones de-diseñoPatrones de-diseño
Patrones de-diseño
Ris Fernandez
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Software
alfmuny
 
Mda mde
Mda   mdeMda   mde
Mda mde
com2merwil
 
Juan velasquez
Juan velasquezJuan velasquez
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
landeta_p
 
Mda
MdaMda
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
AlexanderLara29
 
1127082.ppt
1127082.ppt1127082.ppt
1127082.ppt
BlenMridaYucatn
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITES
Jesus Caceres Tello
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
guestb97266b9
 

Similar a MVC vs MVP (20)

MVC.ppt
MVC.pptMVC.ppt
MVC.ppt
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
3 1 mde mda
3 1 mde mda3 1 mde mda
3 1 mde mda
 
S01-s1-MVC.pptx
S01-s1-MVC.pptxS01-s1-MVC.pptx
S01-s1-MVC.pptx
 
S8 arely medina_power_point
S8 arely medina_power_pointS8 arely medina_power_point
S8 arely medina_power_point
 
Android mvp
Android mvpAndroid mvp
Android mvp
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Uml
UmlUml
Uml
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
Fundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a ObjetosFundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a Objetos
 
Patrones de-diseño
Patrones de-diseñoPatrones de-diseño
Patrones de-diseño
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Software
 
Mda mde
Mda   mdeMda   mde
Mda mde
 
Juan velasquez
Juan velasquezJuan velasquez
Juan velasquez
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 
Mda
MdaMda
Mda
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
1127082.ppt
1127082.ppt1127082.ppt
1127082.ppt
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITES
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 

Último

DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) -  JRM - APSTI I ADuckDuckGo (Motor de Busqueda) -  JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
DarnotOcxalFlorianoP
 
APLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdfAPLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdf
jordanovillacorta09
 
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Javier Martinez Seco
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
sesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWAREsesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWARE
YanelyMedalithBM
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
Eduardo455921
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 

Último (10)

DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) -  JRM - APSTI I ADuckDuckGo (Motor de Busqueda) -  JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
 
APLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdfAPLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdf
 
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
sesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWAREsesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWARE
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 

MVC vs MVP

  • 2. ¿Que es un Patrón? Los patrones son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces. Patrones de arquitectura: Aquellos que expresan un esquema organizativo estructural fundamental para sistemas de software. Patrones de Diseño: Aquellos que expresan esquemas para definir estructuras de diseño (o sus relaciones) con las que construir sistemas de software.
  • 3. ¿Que es un Patrón? Patrones de arquitectura: Los patrones de arquitectura, nos permiten mantener un proyecto limpio, escalable, fácil de mantener y de testear. . Patrones de Diseño: Nos muestran soluciones al momento de diseñar un software, soluciones de estructura de clases y reutilización de componentes.
  • 4. ¿Los patrones son para Android? Los patrones de diseño y de arquitectura no son nuevos, están con nosotros aproximadamente desde los años 70 y sus creadores los comenzaron a utilizar para solucionar problemas de sobre escritura de código en los proyectos web que implementaban. Varias tecnologías se han adaptado a utilizar este patrón y en muchos de los casos los desarrolladores adecuan el lenguaje a los patrones.
  • 6. MVC El modelo-vista-controlador (MVC) es un patrón de arquitectura de software, que separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el módulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC propone la construcción de tres componentes distintos que son el modelo, la vista, y el controlador, es decir, por un lado define componentes para la representación de la información, y por otro lado para la interacción del usuario. Este patrón de arquitectura de software se basa en las ideas de reutilización de código y la separación de conceptos, características que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento.
  • 7. MVP El modelo-vista-presentar (MVP) es una derivación del patrón arquitectónico modelo-vista-controlador (MVC), y es utilizado mayoritariamente para construir interfaces de usuario. En MVP el presentador asume la funcionalidad del “medio- hombre”. En MVP, toda lógica de presentación es colocada al presentador.
  • 8. Diferencias 1. En el MVC, el modelo notifica a la vista cualquier cambio que sufra el estado del modelo. La información puede pasarse en la propia notificación, o después de la notificación, la vista puede consultar el modelo directamente para obtener los datos actualizados. Por el contrario, en el MVP, la vista no sabe nada sobre el modelo y la función del presentador es la de mediar entre ambos, enlazando los datos con la vista. 2. En el modelo MVC, la vista tiende a tener más lógica porque es responsable de manejar las notificaciones del modelo y de procesar los datos. En el modelo MVP, esa lógica se encuentra en el presentador, haciendo a la vista “estúpida”. Su única función es representar la información que el presentador le ha proporcionado. 3. En MVC, el modelo tiene lógica extra para interactuar con la vista. En el MVP, esta lógica se encontraría en el presentador.
  • 11. Ejemplo • El usuario introduce su usuario y clave. • La Vista ejecuta el método del presentador a hacer Login. • El Presentador hacer la llamada al ApiCliente. • Si todo ha ido bien, el Presentador notifica a la vista que el login fue exitoso. En Caso de que se haya producido algún error, muestra una alerta con un mensaje de error.

Notas del editor

  1. Saludo ¿Quien soy? ¿De donde soy? ¿Qué Hago? ¿Mis pasatiempos? Hoy vamos a hablar de un tema muy importante para los programadores nuevos en Android los cuales no saben como arquitecturar sus proyectos de manera efectiva. Es increíble la cantidad de post que salen mensualmente enseñándonos nuevas formas de arquitecturar nuestras aplicaciones, de cómo mezclar patrones con librerías, por ejemplo: Como hacer un MVP con Event Buss Como hacerlo Reactivo con RXJava Como inyectar dependencias manualmente o con Dagger. Es importante el día en que como desarrollador te animas a buscar las mejores practicas y las mejores herramientas para ser mas productivo y que tus aplicaciones sean mas robustas. Eso es un paso de madures muy importante en tu etapa como desarrollador.
  2. ¿Alguien le queda alguna duda? Estas definiciones son sacadas de la página de Wikipedia y se que a primera no se entenderán y les daré mi definición propia.
  3. ¿Han escuchado sobre Patrón de Arquitectura? ¿Qué patrones de Arquitectura Conocen?
  4. MVC = Modelo Vista Controlador MVP = Modelo Vista Presentador MVVM = Modelo Vista VistaModelo Estos son alguno de los patrones de arquitectura más conocidos en Android. ¿Ya conocen o aplican alguno? En esta charla vamos a hablar sobre el patron MVC vs el patron MVP aplicados a la tecnologías de Android.
  5. Información extraída de Wikipedia.
  6. Información extraída de Wikipedia.
  7. Como podemos ver ambos modelos parecen bastante similares pero ofrecen importantes diferencias
  8. Modelo: Esta capa gestiona los datos. Son las clases que denominaríamos de lógica de negocio. Vista: Se encarga de mostrar los datos. Aquí se encontrarían nuestros Fragmentos y Vistas. Presentador: Se sitúa entre el modelo y la vista, permitiendo conectar la interfaz gráfica con los datos.
  9. Android no nos ofrece de forma nativa la posibilidad de desarrollar nuestras aplicaciones bajo el patrón MVP, de hecho viola mucho de sus principios básicos. Aun así podemos llevar a cabo alguna aproximación para este fin.
  10. Vamos a ver un posible ejemplo de implementación en el que el usuario dispone de un formulario dónde puede introducir contactos.