O MVVMcross é uma poderosa estrutura MVVM cruzada que aprimora os projetos nativos da Xamarina, permitindo o compartilhamento de camadas de apresentação e a lógica da UI em diferentes plataformas. Aqui estão alguns casos de uso comuns para MVVMcross em projetos nativos de Xamarin:
1. Reutilização do código de plataforma cruzada **
O MVVMCROSS permite que os desenvolvedores maximizem a reutilização do código colocando ViewModels e Logic Business em uma biblioteca de classes portáteis (PCL). Esse PCL pode ser referenciado em vários projetos específicos da plataforma, como xamarin.android e xamarin.ios, garantindo que a lógica principal permaneça consistente enquanto a interface do usuário pode ser personalizada para cada plataforma [1] [2].2. Implementação do padrão MVVM **
O MVVMCROSS facilita a implementação do padrão Model-ViewModel (MVVM), o que é benéfico para manter uma clara separação de preocupações entre a interface do usuário e a lógica de negócios. Esse padrão ajuda a criar aplicativos pouco acoplados, facilitando o teste e a manutenção [3] [5].3. Ligação e navegação de dados **
O MVVMcross fornece recursos robustos de ligação de dados, permitindo que as visualizações se vinculem ao ViewModels sem problemas. Esse recurso suporta vários modos e conversores de ligação, aumentando a flexibilidade da interface do usuário do aplicativo. Além disso, o MVVMcross inclui um sistema de navegação que simplifica a movimentação entre vistas diferentes no aplicativo [2] [5].4. Injeção de dependência e plugins **
O MVVMCROSS oferece um contêiner de injeção de dependência (DI) que permite aos desenvolvedores registrar e resolver serviços específicos da plataforma do PCL. Esse recurso é crucial para integrar funcionalidades específicas da plataforma sem duplicar o código. Além disso, o MVVMCROSS suporta uma ampla gama de plugins para funcionalidades comuns, como operações de banco de dados, conectividade de rede e muito mais, que podem ser facilmente integradas aos projetos via Pacotes Nuget [1] [3].5. Personalização da interface do usuário específica da plataforma **
Enquanto o xamarin.forms restringe a personalização da interface do usuário entre as plataformas, o MVVMcross com o nativo Xamarin permite que os desenvolvedores criem UIs específicas da plataforma. Isso é particularmente útil quando um aplicativo requer uma aparência nativa em cada plataforma. O MVVMCROSS garante que, apesar das diferentes implementações da interface do usuário, a lógica de negócios subjacente permanece compartilhada e consistente [1] [4].6. Teste de unidade e eficiência de desenvolvimento **
Ao separar a lógica de negócios em um PCL, o MVVMCROSS facilita a gravação de testes de unidade para a lógica principal do aplicativo. Essa separação também acelera o desenvolvimento, pois as alterações na lógica de negócios não exigem modificações no código da interface do usuário específico da plataforma [5].Em resumo, o MVVMCROSS é uma ferramenta versátil para projetos nativos da Xamarin, oferecendo uma abordagem estruturada para o desenvolvimento cruzado, mantendo a flexibilidade para personalizar as UIs para cada plataforma. Seus recursos, como suporte ao padrão MVVM, ligação de dados, injeção de dependência e extenso ecossistema de plug-in, tornam-o uma escolha ideal para aplicações complexas e de plataforma cruzada.
Citações:[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[2] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvmcross
[3] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[4] https://canbilgin.wordpress.com/tag/mvvmcross/
[5] https://www.mvvmcross.com/documentation/getting-started/getting-started
[6] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-version
[7] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do-that-xamarin-does-already
[8] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross