Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mvvmcross


Mvvmcross


O MVVMcross é uma estrutura poderosa e opinativa de MVVM (modelo-viewmodel) projetado para o desenvolvimento de aplicativos de plataforma cruzada dentro do ecossistema .NET. Ele suporta várias plataformas, incluindo Xamarin.ios, Xamarin.android, Xamarin.forms, Universal Windows Platform (UWP), Windows Apresentation Foundation (WPF) e mais [1] [3] [4]. Aqui está uma visão geral de seus principais recursos e como funciona:

Principais recursos do mvvmcross

- Padrão de arquitetura MVVM: MVVMcross implementa o padrão MVVM, que separa a lógica do aplicativo em três componentes interconectados: modelo, visualização e viewModel [3].
-Sistema de navegação: fornece um sistema de navegação robusto, permitindo fácil gerenciamento do ViewModel-to-ViewModel Transitions [2] [4].
- Vinculação de dados: o MVVMcross inclui um mecanismo de ligação personalizável, permitindo que os desenvolvedores criem ligações personalizadas para suas opiniões [4].
- Inversão do controle (COI) e injeção de dependência: a estrutura suporta o COI por meio de injeção de dependência, facilitando o acoplamento e testabilidade soltos [3] [4].
-Suporte específico da plataforma: oferece suporte amplo para recursos e funcionalidades específicos da plataforma [3].
- Plugins e extensões: o MVVMCROSS inclui uma estrutura de plug -in que permite que os desenvolvedores integrem facilmente funcionalidades adicionais, como GPS, localização e muito mais [4].

como o mvvmcross funciona

Projetos de núcleo e interface do usuário

Os aplicativos MVVMCROSS normalmente consistem em duas partes principais:

- Projeto Core: Isso contém a lógica de negócios, o ViewModels, os serviços e os modelos. Geralmente é implementado como uma biblioteca padrão .NET para garantir a compatibilidade entre plataformas [2].
- Projetos de interface do usuário: cada plataforma (por exemplo, iOS, Android) possui seu próprio projeto de interface do usuário, que inclui código específico da plataforma e visualizações que interagem com o projeto principal [2].

Objetos -chave e inicialização

- Classe de aplicativo: localizada no projeto principal, esta classe é responsável por registrar objetos personalizados no contêiner do IOC e inicializar a lógica do aplicativo [2].
- Objeto AppStart: Opcional, este objeto determina qual ViewModel apresentar primeiro durante a inicialização do aplicativo [2].
- Classe de configuração: Encontrado em cada projeto de plataforma, esta classe inicializa os serviços MVVMcross e registra a plataforma específica [2].

Processo de inicialização ###

1. Startup da plataforma: o processo de inicialização da plataforma nativa começa.
2. Configuração do MVVMCROSS: A classe `Setup` inicializa a estrutura em duas etapas:` InitializePrimary` (encadeamento principal) e `InitializeSeCondary` (Thread Background) [2].
3. Inicialização do aplicativo: A classe `App` é inicializada e fornece um objeto 'AppStart` para gerenciar a primeira etapa de navegação [2].

Introdução com mvvmcross

Para iniciar um novo projeto MVVMCROSS, os desenvolvedores podem usar modelos como MVXScaffolding. A estrutura está disponível por meio de pacotes Nuget, que devem ser instalados nos projetos principais e específicos da plataforma [3] [4]. Para guias e documentação detalhados, o site oficial do MVVMCROSS e o repositório do GitHub são excelentes recursos [1] [4].

Citações:
[1] https://www.mvvmcross.com
[2] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[3] https://www.mvvmcross.com/documentation/getting-started/getting-started
[4] https://github.com/mvvmcross/mvvmcross
[5] https://www.mvvmcross.com/blog/
[6] https://github.com/mvvmcross
[7] https://x.com/mvvMcross?lang=en
[8] https://www.nuget.org/profiles/mvvMcross