Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ¿Cuáles son las principales diferencias entre usar mvvmcross y xamarin.forms


¿Cuáles son las principales diferencias entre usar mvvmcross y xamarin.forms


MVVMCross y Xamarin. Las formas son dos tecnologías distintas utilizadas en el desarrollo de aplicaciones móviles multiplataforma, cada una de las cuales atiende diferentes propósitos y ofrece ventajas únicas.

Descripción general de xamarin.forms

Xamarin.Forms es un marco desarrollado por Microsoft que permite a los desarrolladores crear aplicaciones multiplataforma utilizando una base de código C# compartida y XAML para la interfaz de usuario. Permite a los desarrolladores escribir una vez y ejecutar en múltiples plataformas, incluidas iOS, Android y UWP. Xamarin.Forms es ideal para proyectos en los que se desea una IU consistente en las plataformas, y simplifica el proceso de desarrollo al proporcionar una API unificada para los componentes de la UI. Sin embargo, esta consistencia tiene costo de flexibilidad, ya que la UI se limita a un subconjunto de elementos comunes de cada plataforma, lo que puede conducir a limitaciones para lograr un aspecto y sensación nativos o una personalización avanzada de UI [4] [7].

Descripción general de mvvmcross

MVVMCross es un marco MVVVM (Model-View-View-ViewModel) multiplataforma que admite Xamarin.ios, Xamarin.Android, Xamarin.Forms y otras plataformas. Se centra en separar la lógica comercial de la interfaz de usuario, lo que permite a los desarrolladores compartir una parte significativa de su código en diferentes plataformas. MVVMCross proporciona características como enlace de datos, navegación, inversión de control e inyección de dependencia, que facilitan el desarrollo de aplicaciones complejas. A diferencia de Xamarin.Forms, MVVMCross no hace cumplir un marco de UI específico; En cambio, permite a los desarrolladores elegir cómo desean implementar la interfaz de usuario para cada plataforma, ofreciendo más flexibilidad para lograr experiencias de interfaz de usuario nativas [7] [10].

Diferencias clave

1. Implementación de la UI:
- Xamarin.Forms: utiliza una capa de UI compartida en todas las plataformas, que simplifica el desarrollo pero puede limitar la personalización y la apariencia nativa.
- MVVMCross: permite la implementación de la interfaz de usuario nativa en cada plataforma o UI compartida con Xamarin.Forms, proporcionando más flexibilidad para lograr diseños de interfaz de usuario específicos de la plataforma.

2. Código compartido:
- Ambos marcos permiten compartir código, pero MVVMCross se enfoca en compartir la lógica comercial (ViewModels) al tiempo que permite diferentes implementaciones de la interfaz de usuario. Xamarin.Forms comparte tanto la UI como la lógica comercial.

3. Navegación y enlace de datos:
- MVVMCross proporciona un sólido sistema de navegación y capacidades de enlace de datos que funcionan en diferentes marcos de interfaz de usuario, incluidas Xamarin.Forms. Xamarin.Forms se basa en sus propios mecanismos de navegación y enlace de datos.

4. Complejidad del proyecto:
- Para proyectos complejos que requieren personalización avanzada de UI o características específicas de la plataforma, MVVMCross podría ser más adecuado debido a su flexibilidad. Para proyectos más simples en los que una interfaz de usuario consistente es suficiente, las formas de Xamarin pueden ser más sencillas de implementar.

5. Enfoque de desarrollo:
- Xamarin.Forms a menudo es preferido por los desarrolladores familiarizados con XAML y .NET, ya que proporciona una experiencia de desarrollo unificada. MVVMCross es beneficioso para los proyectos en los que la lógica comercial debe desacoplarse de la interfaz de usuario, lo que permite un mayor control sobre la implementación de la interfaz de usuario en cada plataforma.

En resumen, mientras que ambos marcos admiten el desarrollo multiplataforma, Xamarin.Forms se enfoca en compartir la capa de interfaz de usuario en todas las plataformas, mientras que MVVMCross enfatiza compartir la lógica comercial y permite opciones de implementación de UI más flexibles. La elección entre ellos depende de los requisitos del proyecto con respecto a la personalización de la interfaz de usuario, la complejidad y la estrategia de intercambio de códigos.

Citas:
[1] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvvmframeworks
[3] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-version
[4] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[5] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcrossframework/
[6] https://canbilgin.wordpress.com/tag/mvvmcross/
[7] https://www.mvvmcross.com/documentation/getting-started/getting-started
[8] https://www.reddit.com/r/csharp/comments/a9mph1/mvc_or_mvvm_for_xamarin/
[9] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
[10] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/