De la mano de Android Marshmallow llegó el Data Binding. Esta librería creada por los desarrolladores de Google Yigit Boyar and George Mount abre una nueva puerta al desarrollo en Android. Entre otras opciones, dio luz verde al uso de patrones como el MVVM (Model – View -ViewModel) en esta plataforma.
Este patrón, el cual ya implementan otras plataformas como Windows Phone a la hora de desarrollar aplicaciones, es una derivación del Model View Presenter (MVP). Mediante el uso del MVVM podemos separar la manera de implementar la vista de nuestra lógica de negocio, delegando en el ViewModel la lógica que se ocupará de implementarla.
MVVM en detalle
Pese al gran parecido con el patrón MVP, la gran diferencia la podemos encontrar en el Data Binding. Este motor de «binding» permite incluir interfaces de usuario reactivas que serán gestionadas por el ViewModel

mvvm
Como se puede apreciar en la imagen de arriba, los 3 elementos que conforman este patrón son los siguientes:
- Model: Es la clase que encapsulará la información o la lógica de acceso a la información.
- View: Es la representación de la vista, la interfaz de usuario, en la mayoría de los casos serán nuestros layouts en XML.
- ViewModel: Es el único encargado de hablar con el modelo. El trabajo del ViewModel de decidir como se muestran los elementos en las vistas y notificar que se han realizado cambios en el modelo para aplicar los cambios en la interfaz de usuario. Para ello hará uso del anteriormente mencionado motor de «binding».
Queremos tu opinión :)