Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ¿Cuáles son las alternativas para usar presentadores de vista en mvvmcross?


¿Cuáles son las alternativas para usar presentadores de vista en mvvmcross?


En MVVMCross, los presentadores de vistas juegan un papel crucial en la gestión de la presentación de modelos de visión en diferentes plataformas. Sin embargo, si está buscando alternativas o formas de personalizar la lógica de presentación más allá de lo que ofrecen los presentadores de la vista, aquí hay algunos enfoques:

1. Personalización de presentadores de vista **

Puede extender o modificar los presentadores de vista existentes subclasificándolos o implementando la interfaz `IMVXViewPresenter`. Esto le permite adaptar la lógica de presentación a necesidades específicas, como manejar diferentes tamaños de pantalla u orientaciones en varias plataformas [1] [3]. Por ejemplo, es posible que desee mostrar un Modelo ViewModel de manera diferente en un teléfono versus una tableta.

2. Usando sugerencias de presentación **

MVVMCross proporciona un mecanismo llamado Sugerencias de presentación (`MVXPresentationHint`) que le permite solicitar cambios en la interfaz de usuario sin necesariamente mostrar un nuevo model de visión. Puede crear sugerencias personalizadas para señalar acciones específicas al presentador, como cerrar un modelado o modificar la pila de navegación [1] [3]. Este enfoque es útil para manejar interacciones complejas de IU que no están cubiertas por los presentadores predeterminados.

3. Marcos MVVM alternativos **

Si está buscando un cambio más amplio en su arquitectura MVVM, puede considerar marcos alternativos que ofrecen diferentes enfoques para la presentación y la navegación. Algunas alternativas populares incluyen:
- Prism: conocido por su robusto soporte en WPF, formularios de xamarina y plataformas UNO, Prism proporciona un marco integral para construir aplicaciones mantenibles [4].
- ReactiveUI: este marco se centra en la programación reactiva funcional, lo que permite una lógica de UI más abstracta y comprobable [4].
- Caliburn.Micro: un marco liviano que admite patrones MV* en plataformas XAML, enfatizando el desarrollo rápido sin sacrificar la calidad del código [4].

4. Lógica de navegación personalizada **

En lugar de confiar únicamente en los presentadores de la vista, puede implementar la lógica de navegación personalizada directamente en su aplicación. Esto podría implicar el uso de API de navegación específicas de la plataforma o crear un servicio de navegación personalizado que se integre con las funciones de navegación ViewModel a ViewModel de MVVMCross [6].

5. cuadros de diálogo y volantes **

Para escenarios en los que debe mostrar contenido fuera del flujo de navegación estándar, MVVMCROSS admite el uso de diálogos y fletos. Estos se pueden personalizar para adaptarse a necesidades de presentación específicas, ofreciendo una alternativa a la navegación tradicional basada en páginas [9].

En resumen, si bien los presentadores de vista son una herramienta poderosa en MVVMCross, puede personalizarlos o extenderlos, usar sugerencias de presentación para cambios dinámicos de interfaz de usuario o explorar los marcos MVVM alternativos y los enfoques de navegación personalizados para lograr la lógica de presentación deseada para su aplicación.

Citas:
[1] https://www.mvvmcross.com/documentation/fundamentals/view-presenters
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-kinding-target.html
[3] https://gregshackles.com/presenters-in-mvvmcross-a-primer/
[4] https://dotnet.libhunt.com/mvvmcross- alternativo
[5] https://www.mvvmcross.com/documentation/advanced/custom-data-neping
[6] https://stackoverflow.com/questions/18735497/mvvmcross-navigation-on-screen
[7] https://stackoverflow.com/questions/22601018/what- are-the-alternates-of-module-view-presentermvp-esign-pattern
[8] https://yanxiaodi.gitbook.io/xamarin-mvvmcross-handbook/using-mvvvmcross-to-create-your-first-xamarin-app/creating-the-iosproject/understanding-the-data-binding-syntax
[9] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup