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


¿Cuáles son las diferencias clave entre usar mvvmcross con xamarin.forms y xamarin nativo


Al comparar el uso de mvvmcross con xamarin.forms y xamarin nativo, surgen varias diferencias clave, principalmente en términos de flexibilidad de la interfaz de usuario, intercambio de códigos y enfoque de desarrollo.

Flexibilidad y control de la interfaz de usuario

- Xamarin.Forms: este marco proporciona una capa de UI compartida en todas las plataformas, que simplifica el desarrollo al permitirle escribir código de interfaz de usuario una vez e implementarlo en múltiples plataformas. Sin embargo, esta interfaz de usuario compartida puede limitar la personalización a las características específicas de la plataforma, que requieren renderistas personalizados para elementos de UI más avanzados [7] [9]. MVVMCross se puede usar con Xamarin.forms para administrar la lógica y la navegación de negocios, pero la interfaz de usuario sigue estandarizada en todas las plataformas [1] [10].

- Nativo de Xamarin: cuando usa Xamarin Native con MVVMCross, tiene un control completo sobre la interfaz de usuario para cada plataforma. Esto permite implementaciones de UI específicas de la plataforma, maximizando el aspecto nativo y la sensación de cada plataforma. Si bien este enfoque requiere más esfuerzo para desarrollar capas de IU separadas para iOS y Android, ofrece una mayor flexibilidad y personalización [7] [9].

Compartir y reutilizar el código

- Xamarin.Forms: con Xamarin.Forms, puede compartir no solo la lógica comercial (a través de MVVMCross) sino también el código de UI en las plataformas. Esto simplifica el desarrollo y reduce la cantidad de código que necesita mantener. Sin embargo, la interfaz de usuario se limita a un conjunto común de elementos que funcionan en todas las plataformas [4] [10].

- Nativo de Xamarin: en una configuración nativa de Xamarin con MVVMCross, puede compartir la lógica comercial (ViewModels) en todas las plataformas, pero debe implementar la interfaz de usuario por separado para cada plataforma. Este enfoque permite más reutilización de código en la capa de presentación y la lógica de la interfaz de usuario cuando se usa MVVMCross, pero aún requiere un desarrollo de UI específico de la plataforma [9].

Enfoque de desarrollo

- Xamarin.Forms: los desarrolladores a menudo prefieren el desarrollo con Xamarin.Forms y MVVMCross sin experiencia móvil extensa, ya que simplifica el desarrollo de la interfaz de usuario de la plataforma cruzada. El marco maneja gran parte de la complejidad subyacente, lo que permite a los desarrolladores centrarse en la lógica compartida y la interfaz de usuario [4] [10].

-Nativo de Xamarin: el desarrollo nativo de xamarina con MVVMCross suele ser favorecido por los desarrolladores que desean un control de grano fino sobre la interfaz de usuario y se sienten cómodos con el desarrollo específico de la plataforma. Este enfoque requiere más experiencia en el desarrollo nativo de iOS y Android, pero ofrece una mayor flexibilidad en el diseño e implementación de la interfaz de usuario [7] [9].

Navegación y vinculación

- Xamarin. Formas con MVVMCross: La navegación en Xamarin.Forms con MVVMCross se gestiona a nivel de Modelo View, lo que permite una separación limpia de las preocupaciones. MVVMCross proporciona capacidades de unión mejoradas, como valores de respuesta, aunque carece de algunas características como la propiedad de origen que se encuentra en los enlaces estándar de Xamarin.Forms [2] [10].

- Nativo de Xamarin con MVVMCross: en proyectos nativos de Xamarin, MVVMCross maneja la navegación y el emparejamiento de View/ViewModel, permitiendo una arquitectura MVVM consistente en las plataformas. Esta configuración permite a los desarrolladores aprovechar los patrones de navegación específicos de la plataforma mientras mantienen una capa lógica comercial compartida [3] [9].

En resumen, si bien ambos enfoques pueden aprovechar MVVMCross para la arquitectura MVVM, Xamarin.Forms ofrece una capa de UI compartida con menos control sobre las características de UI específicas de la plataforma, mientras que Xamarin Native proporciona un control total sobre la personalización de la interfaz de usuario, pero requiere más esfuerzo de desarrollo para implementaciones de UI separadas.

Citas:
[1] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-forms
[2] https://www.xamarinhelp.com/use-xamarin-forms-mvvmframework/
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/getting-started
[5] https://www.reddit.com/r/androiddev/comments/6cseds/what_are_the_disadvantages_of_xamarin_for_android/
[6] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
[7] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[8] https://mentormate.com/blog/6-reasons-mvvmcross-speeds-xamarin-development-personalizes-ux/
[9] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[10] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx