O MVVMCROSS é uma estrutura popular para a criação de aplicativos de plataforma cruzada usando o padrão Model-View-ViewModel (MVVM). Embora ofereça muitos benefícios, como ligação de dados e injeção de dependência, existem vários desafios associados ao seu uso.
Defeitos nos componentes da estrutura
Um dos principais desafios do MVVMcross é a presença de defeitos em alguns de seus componentes, particularmente aqueles relacionados às visualizações do Android e do iOS que suportam a ligação dos dados. Esses defeitos podem levar a problemas com a interface do usuário e exigir esforços adicionais de depuração. Como o MVVMcross é de código aberto, os usuários podem contribuir com correções, mas isso nem sempre é direto para os desenvolvedores sem um amplo conhecimento dos internos da estrutura [3].
Velocidade de inicialização
Os aplicativos MVVMcross geralmente experimentam tempos de inicialização mais lentos em comparação com outras estruturas. Isso se deve em grande parte aos mecanismos baseados em reflexão usados durante a inicialização, que são inerentes à arquitetura da estrutura. Embora essa lentidão também seja comum nos aplicativos Xamarin em geral, pode ser uma desvantagem para os usuários que esperam lançamentos rápidos de aplicativos [3].
dores de atualização
A atualização das versões MVVMCROSS pode ser desafiador devido a mudanças significativas na nomeação de convenções e comportamento. A documentação geralmente fica por trás dessas atualizações, levando a dificuldades em encontrar soluções para novos problemas. Isso resulta em um processo de atualização demorado e às vezes frustrante [3].
Qualidade da documentação
A qualidade da documentação do MVVMcross é outro desafio. Geralmente, ele contém erros de ortografia, carece de materiais de referência abrangentes e inclui links quebrados. Os desenvolvedores freqüentemente precisam se aprofundar no código-fonte da estrutura para encontrar informações precisas, que podem demorar muito tempo e requer uma boa compreensão da arquitetura da estrutura [3].
Amostras desatualizadas
O MVVMcross fornece um repositório de projetos de amostra, mas muitas dessas amostras estão desatualizadas e não são compatíveis com as versões mais recentes da estrutura. Isso dificulta o início dos novos desenvolvedores ou para os desenvolvedores existentes se adaptarem às mudanças na estrutura. Apenas algumas amostras são mantidas ativamente, o que limita sua utilidade para aprender e solucionar problemas [3].
Limitações de ligação de dados
Enquanto o MVVMCROSS suporta a ligação de dados, certos modos de ligação, como a ligação única, são menos usados e podem não ser adequados para todos os cenários. Esse modo não monitora ativamente as alterações do ViewModel, o que pode levar a dados desatualizados na visualização se não for gerenciado corretamente [1].
problemas de navegação e ciclo de vida
Navegar entre os modelos ViewModels e o gerenciamento de seu ciclo de vida pode ser complexo, especialmente ao lidar com comportamentos específicos da plataforma, como o Tombstoning no Android. O MVVMcross fornece métodos de ciclo de vida para ajudar a gerenciar esses cenários, mas dominá -los requer uma boa compreensão da estrutura e das especificidades da plataforma subjacente [7].
Inversão do localizador de controle e serviço
Embora o padrão de localização de serviço interno da MVVMcross e o suporte ao controle de controle (IOC) sejam recursos poderosos, eles exigem configuração e gerenciamento cuidadosos. Os serviços de registro e a resolução de dependências podem se tornar complexos se não forem organizados adequadamente, especialmente em aplicações maiores [3] [6].
Em resumo, embora a MVVMcross ofereça muitos benefícios para o desenvolvimento de plataformas cruzadas, ele apresenta vários desafios relacionados a defeitos, desempenho, documentação e complexidade. O enfrentamento desses desafios requer uma compreensão profunda da estrutura e de suas tecnologias subjacentes.
Citações:[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://github.com/mvvmcross/mvvmcross/issues/4201
[3] http://woJosoftware.com/software/mvvmcross/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[5] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvmcross
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://stackoverflow.com/questions/16301045/mvvmcross-v3-is-athat-wrong to-try-to-use-behaviours-and-storyboards-in-a-Mu