¿Qué es MVVM?

Clase 47 de 52Curso de Xamarin.Forms

Resumen

MVVM es el patrón de diseño recomendado y natural para las tecnologías Xaml porque hace uso extensivo del enlace de datos de .NET Este patrón está basado en MVC, sin embargo, el controller acá es el ViewModel que tiene como misión exponer propiedads y lógica para las vistas para que estas se enlacen a las propiedades e invoquen la funcionalidad de los comandos que expongan los ViewModels.

El patrón MVVM como cualquier otro patrón, corresponde a una sugerencia o recomendación, aunque realmente no es una exigencia o requerimiento obligado para desarrollar nuestra aplicación.

Las partes que conforman este patrón son:

  • Model: es el dominio funcional de la aplicación, está conformado por los objetos DTO que contienen la información que maneja nuestra aplicación. Puede tener métodos y propiedades o simplemente sólo propiedades.
  • View: define la Interfaz de Usuario, todo lo que tenga que ver con UI: Páginas, Recursos, DataTemplates, Estilos, etc. La vista se nutre y se carga de datos gracias a las propiedades que expone el ViewModel.
  • ViewModel: traducido como Modelo para la Vista, es acá donde se guarda el estado de la aplicación, donde se exponen las propiedads publicas y comandos a través de los cuales interactuará el usuario con los datos en el Modelo.

En el caso de Xamarin clásico, es posible tener una aplicación para Android e iOS y realizar el código relacionado con la lógica del negocio, la transformación y preparación de datos, una única vez. La única parte que requeriría un desarrollo diferenciado sería la vista para cada una de las plataformas. Ahora con Xamarin.Forms ya se hace posible crear Vistas que son desde su diseño y codificación, multiplataforma.