Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quais são as alternativas para usar os apresentadores de visualização em mvvmcross


Quais são as alternativas para usar os apresentadores de visualização em mvvmcross


No MVVMCROSS, o View Apresers desempenha um papel crucial no gerenciamento da apresentação de modelos de exibição em diferentes plataformas. No entanto, se você está procurando alternativas ou maneiras de personalizar a lógica de apresentação além do que os apresentadores oferecem, aqui estão algumas abordagens:

1. Personalizando Visualização Apresentadores **

Você pode estender ou modificar os apresentadores de exibição existentes, subclassificando -os ou implementando a interface `iMVXViewPrentender`. Isso permite que você adapte a lógica de apresentação a necessidades específicas, como lidar com diferentes tamanhos de tela ou orientações em várias plataformas [1] [3]. Por exemplo, você pode exibir um viewmodel de maneira diferente em um telefone versus um tablet.

2. Usando dicas de apresentação **

O MVVMcross fornece um mecanismo chamado dicas de apresentação (`mvxpresentationhint`) que permite solicitar alterações na interface do usuário sem necessariamente mostrar um novo ViewModel. Você pode criar dicas personalizadas para sinalizar ações específicas para o apresentador, como fechar um viewmodel ou modificar a pilha de navegação [1] [3]. Essa abordagem é útil para lidar com interações complexas da interface do usuário que não são cobertas pelos apresentadores padrão.

3. MVVM Alternative MVVM Frameworks **

Se você está procurando uma mudança mais ampla na sua arquitetura MVVM, considere estruturas alternativas que oferecem diferentes abordagens para a apresentação e a navegação. Algumas alternativas populares incluem:
- PRISM: Conhecido por seu suporte robusto nas plataformas WPF, Xamarin e UNO, o Prism fornece uma estrutura abrangente para a construção de aplicações sustentáveis ​​[4].
- ReactiveUi: essa estrutura se concentra na programação reativa funcional, permitindo uma lógica mais abstrata e testável da UI [4].
- Caliburn.micro: uma estrutura leve que suporta padrões de MV* nas plataformas XAML, enfatizando o desenvolvimento rápido sem sacrificar a qualidade do código [4].

4. Lógica de navegação personalizada **

Em vez de confiar apenas nos apresentadores de exibição, você pode implementar a lógica de navegação personalizada diretamente em seu aplicativo. Isso pode envolver o uso de APIs de navegação específicas da plataforma ou a criação de um serviço de navegação personalizado que se integra aos recursos de navegação ViewModel-to-ViewModel da MVVMcross [6].

5. Diálogos e flyouts **

Para cenários em que você precisa exibir conteúdo fora do fluxo de navegação padrão, o MVVMCROSS suporta usando diálogos e flyouts. Eles podem ser personalizados para atender às necessidades de apresentação específicas, oferecendo uma alternativa à navegação tradicional baseada em páginas [9].

Em resumo, embora os apresentadores de visualização sejam uma ferramenta poderosa no MVVMCROSS, você pode personalizá -los ou estender -os, usar dicas de apresentação para alterações dinâmicas da interface do usuário ou explorar estruturas alternativas de MVVM e abordagens de navegação personalizadas para alcançar a lógica de apresentação desejada para sua aplicação.

Citações:
[1] https://www.mvvmcross.com/documentation/fundamentals/view-presenters
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://gregshackles.com/presenters-in-mvvmcross-a-primer/
[4] https://dotnet.libhunt.com/mvvmcross-alternatives
[5] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[6] https://stackoverflow.com/questions/18735497/mvvmcross-navigation-on-screen
[7] https://stackoverflow.com/questions/22601018/what-are-the-alternative-of-module-view-presentmvp-design-pattern
[8] https://yanxiaodi.gitbook.io/xamarin-mvmcross-handbook/using-mvvmcross-to-create-your-first-xamarin-app/creating-the-ios-project/undestand--data-binding-syntox
[9] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup