MVVMCross es un marco popular para construir aplicaciones multiplataforma utilizando el patrón Model-View-ViewModel (MVVM). Si bien ofrece muchos beneficios, como la vinculación de datos y la inyección de dependencia, existen varios desafíos asociados con su uso.
Defectos en componentes marco
Uno de los principales desafíos con MVVMCross es la presencia de defectos dentro de algunos de sus componentes, particularmente aquellos relacionados con las vistas de Android e iOS que admiten la unión de datos. Estos defectos pueden conducir a problemas con la interfaz de usuario y requieren esfuerzos de depuración adicionales. Dado que MVVMCross es de código abierto, los usuarios pueden contribuir con soluciones, pero esto puede no ser siempre sencillo para los desarrolladores sin un amplio conocimiento de las partes internas del marco [3].
Velocidad de inicio
Las aplicaciones MVVMCross a menudo experimentan tiempos de inicio más lentos en comparación con otros marcos. Esto se debe en gran medida a los mecanismos basados en la reflexión utilizados durante la inicialización, que son inherentes a la arquitectura del marco. Si bien esta lentitud también es común en las aplicaciones de Xamarin en general, puede ser un inconveniente para los usuarios que esperan lanzamientos de aplicaciones rápidas [3].
Dolores de actualización
La actualización de las versiones MVVMCross puede ser un desafío debido a cambios significativos en las convenciones y el comportamiento de nombres. La documentación a menudo se queda atrás de estas actualizaciones, lo que lleva a las dificultades para encontrar soluciones a nuevos problemas. Esto da como resultado un proceso de actualización largo y a veces frustrante [3].
Calidad de documentación
La calidad de la documentación MVVMCross es otro desafío. A menudo contiene errores de ortografía, carece de materiales de referencia integrales e incluye enlaces rotos. Los desarrolladores con frecuencia tienen que profundizar en el código fuente del marco para encontrar información precisa, que puede llevar mucho tiempo y requiere una buena comprensión de la arquitectura del marco [3].
muestras obsoletas
MVVMCross proporciona un repositorio de proyectos de muestra, pero muchas de estas muestras están desactualizadas y no compatibles con las últimas versiones del marco. Esto dificulta que los nuevos desarrolladores comiencen o que los desarrolladores existentes se adapten a los cambios en el marco. Solo unas pocas muestras se mantienen activamente, lo que limita su utilidad para el aprendizaje y la solución de problemas [3].
Limitaciones de enlace de datos
Si bien MVVMCross admite la unión de datos, ciertos modos de enlace, como la unión única, se usan menos comúnmente y pueden no ser adecuados para todos los escenarios. Este modo no monitorea activamente los cambios desde el Modelo ViewModel, lo que puede conducir a datos obsoletos en la vista si no se administra correctamente [1].
Problemas de navegación y ciclo de vida
Navegar entre ViewModels y administrar su ciclo de vida puede ser complejo, especialmente cuando se trata de comportamientos específicos de la plataforma como Tombstoning en Android. MVVMCross proporciona métodos de ciclo de vida para ayudar a administrar estos escenarios, pero dominarlos requiere una buena comprensión tanto del marco como de los detalles de la plataforma subyacente [7].
Inversión de control y localizador de servicios
Si bien el patrón de localización de servicio incorporado de MVVMCross y el soporte de inversión de control (COI) son características potentes, requieren una configuración y gestión cuidadosa. El registro de servicios y las dependencias de resolución puede volverse complejo si no se organiza correctamente, especialmente en aplicaciones más grandes [3] [6].
En resumen, mientras que MVVMCross ofrece muchos beneficios para el desarrollo multiplataforma, presenta varios desafíos relacionados con defectos, rendimiento, documentación y complejidad. Abordar estos desafíos requiere una comprensión profunda del marco y sus tecnologías subyacentes.
Citas:[1] https://www.mvvmcross.com/documentation/fundamentals/data-sninging
[2] https://github.com/mvvmcross/mvvmcross/issues/4201
[3] http://wojosoftware.com/software/mvvmcross/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[5] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvvmcross
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://stackoverflow.com/questions/16301045/mvvmcross-v3-is-that-wrong-to-try-to-use-behaviourss-and-shoryboards-in-a-mu