La experiencia del desarrollador de Xamarin.Forms normalmente implica crear una interfaz de usuario en XAML y luego agregar código subyacente que opera en la interfaz de usuario. A medida que las aplicaciones se modifican y crecen en tamaño y alcance, pueden surgir problemas de mantenimiento complejos. Estos problemas incluyen el estrecho acoplamiento entre los controles de la interfaz de usuario y la lógica comercial, lo que aumenta el costo de realizar modificaciones en la interfaz de usuario y la dificultad de realizar pruebas unitarias de dicho código.
El patrón Model-View-ViewModel (MVVM) ayuda a separar claramente la lógica comercial y de presentación de una aplicación de su interfaz de usuario (UI). Mantener una separación clara entre la lógica de la aplicación y la interfaz de usuario ayuda a abordar numerosos problemas de desarrollo y puede hacer que una aplicación sea más fácil de probar, mantener y evolucionar. También puede mejorar en gran medida las oportunidades de reutilización de código y permite a los desarrolladores y diseñadores de UI colaborar más fácilmente al desarrollar sus respectivas partes de una aplicación.





