Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quais são as principais diferenças entre o uso de mvvmcross e xamarin.forms


Quais são as principais diferenças entre o uso de mvvmcross e xamarin.forms


MVVMCROSS e Xamarin.Forms são duas tecnologias distintas usadas no desenvolvimento de aplicativos móveis de plataforma cruzada, cada uma atendendo a propósitos diferentes e oferecendo vantagens únicas.

Visão geral de Xamarin.forms

Xamarin.forms é uma estrutura desenvolvida pela Microsoft que permite aos desenvolvedores criar aplicativos de plataforma cruzada usando uma base de código C# compartilhada e XAML para a interface do usuário. Ele permite que os desenvolvedores escrevam uma vez e executem em várias plataformas, incluindo iOS, Android e UWP. O Xamarin.forms é ideal para projetos em que uma interface de usuário consistente entre as plataformas é desejada e simplifica o processo de desenvolvimento, fornecendo uma API unificada para componentes da interface do usuário. No entanto, essa consistência tem o custo da flexibilidade, pois a interface do usuário é limitada a um subconjunto de elementos comuns de cada plataforma, o que pode levar a limitações para alcançar a aparência e a sensação nativa ou a personalização avançada da interface do usuário [4] [7].

Visão geral de mvvmcross

O MVVMcross é uma estrutura MVVM de plataforma cruzada (modelo-viewmodel) que suporta Xamarin.ios, xamarin.android, xamarin.forms e outras plataformas. Ele se concentra em separar a lógica de negócios da interface do usuário, permitindo que os desenvolvedores compartilhem uma parte significativa de seu código em diferentes plataformas. O MVVMCROSS fornece recursos como ligação de dados, navegação, inversão de controle e injeção de dependência, que facilitam o desenvolvimento de aplicações complexas. Ao contrário do Xamarin.Forms, o MVVMcross não aplica uma estrutura de interface do usuário específica; Em vez disso, permite que os desenvolvedores escolham como desejam implementar a interface do usuário para cada plataforma, oferecendo mais flexibilidade na obtenção de experiências nativas da interface do usuário [7] [10].

Diferenças -chave

1. Implementação da interface do usuário:
- xamarin.forms: usa uma camada de interface do usuário compartilhada entre plataformas, que simplifica o desenvolvimento, mas pode limitar a personalização e a aparência nativa.
- MVVMCROSS: permite a implementação da interface do usuário nativa em cada plataforma ou interface do usuário compartilhada com xamarin.forms, fornecendo mais flexibilidade na obtenção de designs de interface do usuário específicos da plataforma.

2. Compartilhamento de código:
- Ambas as estruturas permitem o compartilhamento de código, mas o MVVMCROSS se concentra em compartilhar a lógica de negócios (ViewModels), permitindo diferentes implementações de interface do usuário. Xamarin.forms compartilha a interface do usuário e a lógica de negócios.

3. Navegação e ligação de dados:
- O MVVMCROSS fornece um sistema de navegação robusto e recursos de ligação de dados que funcionam em diferentes estruturas da interface do usuário, incluindo xamarin.forms. Xamarin.forms depende de seus próprios mecanismos de navegação e ligação de dados.

4. Complexidade do projeto:
- Para projetos complexos que exigem personalização avançada da interface do usuário ou recursos específicos da plataforma, o MVVMCROSS pode ser mais adequado devido à sua flexibilidade. Para projetos mais simples em que uma interface do usuário consistente é suficiente, o Xamarin.forms pode ser mais simples de implementar.

5. Abordagem de desenvolvimento:
- Xamarin.forms é frequentemente preferido pelos desenvolvedores familiarizados com XAML e .NET, pois fornece uma experiência de desenvolvimento unificada. O MVVMcross é benéfico para projetos em que a lógica de negócios precisa ser dissociada da interface do usuário, permitindo mais controle sobre a implementação da interface do usuário em cada plataforma.

Em resumo, enquanto ambas as estruturas suportam o desenvolvimento de plataformas cruzadas, o Xamarin.forms se concentra em compartilhar a camada da interface do usuário nas plataformas, enquanto o MVVMcross enfatiza o compartilhamento da lógica de negócios e permite opções de implementação de interface do usuário mais flexíveis. A escolha entre eles depende dos requisitos do projeto em relação à personalização da interface do usuário, complexidade e estratégia de compartilhamento de código.

Citações:
[1] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks
[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-mvvmcross-framework/
[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/