Xamarin Forms - Apresentando o framework FreshMVVM - I |
Neste artigo eu vou apresentar os conceitos básicos sobre o framework FreshMVVM. |
Hoje veremos como executar a abordagem MVVM - Model-View-ViewModel - no Xamarin Forms usando o framework FreshMVVM.
O MVVM é a melhor abordagem para os aplicativos Xamarin.Forms e WPF. Há muitos plugins MVVM ou bibliotecas como FreshMVVM, MVVMCross, Prism, etc., disponíveis para simplificar as implementações do MVVM.
Se você não sabe o que é MVVM veja nas referências, links para artigos que mostram o conceito deste padrão.
O FreshMVVM foi projetado para executar o MVVM de maneira fácil e simples em aplicações Xamarin.Forms, e, foi criado por Michael Ridland sendo distribuido como um pacote Nuget.
Abaixo vemos uma figura que mostra como o FreshMVVM atua no Xamarin Forms:
Dentre os recursos oferecidos pelo FreshMVVM destacam-se :
O Framework utiliza uma convenção sobre configuração e possui certas regras para realizar a vinculação de dados MVVM.
A seguir as principais:
Além disso destacam-se os seguintes recursos do FreshMVVM:
1- Cada PageModel possui uma propriedade chamada "CoreMethods", que é preenchida automaticamente quando um PageModel é enviado, e possui também as funções básicas que a maioria dos aplicativos precisa, como exibir alerta, Pushing , Pop Model, etc.
2- O framework
possui métodos de navegação para fazer a navegação entre as páginas.
Podemos usar o método PushPageModel para empurrar a
página na pilha de navegação ou ir para a próxima página, em vez do
PushAsync, no MVVM normal. Exemplo:
await CoreMethods.PushPageModel<AddContatoPageModel>();
Abaixo temos o código equivalente na navegação padrão normal:
Navigation.PushAsync (new AddContatoPage ());
Podemos usar
PopPageModel
para exibir a página da pilha de navegação em vez de PopAsync no MVVM normal.
await CoreMethods.PopPageModel();
Abaixo o código padrão equivalente:
Navigation.PopAsync();
3- Possui o método DisplayAlert
await CoreMethods.DisplayAlert("Detalhes", "Atualiza Detalhes", "OK", "Cancel");
4- Inversão de
Controle (IOC)
O FreshMvvm vem com um contêiner IOC integrado. Ele usa o
TinyIOC por baixo dos panos, mas com nomes diferentes para evitar
conflitos.
Por exemplo, para registrar a interface IContatoRepository
com a classe ContatoRepository.
FreshIOC.Container.Register <IContatoRepository,
ContatoRepository>();
5- Injeção de Construtor - PageModel
Quando os
PageModels são enviadas via push, os serviços que
estão no contêiner IOC podem ser enviados para o
Construtor.
Por exemplo, no construtor AddContatoPageModel, se
passarmos a interface IContatoRepository como
parâmetro, essa interface assumirá a implementação da classe
ContatoRepository que foi registrada pelo IOC.
public
class AddContatoPageModel: FreshBasePageModel { public IContatoRepository _contatoRepository; public BaseContactPageModel (IContatoRepository contatoRepository) { _contatoRepository = contatoRepository; } } |
Esses são alguns dos recursos oferecidos pelo framework FreshMVVM, e , nada melhor do que um exemplo prático para ver tudo isso funcionando.
Mas você pode estar pensando ...."Eu preciso mesmo de um framework para implementar o MVVM ? "
Claro que não, você pode implementar o padrão MVVM sozinho mas vai encontrar os seguintes problemas para resolver:
E você pode resolver tudo sozinho fazendo a sua própria implementação.
Mas porque não usar então uma ferramenta que já resolve tudo isso e te livra deste trabalho ?
Na próxima parte do artigo iremos criar um projeto Xamarin Forms usando os recursos do MVVM.
"Porque o Senhor é justo, e ama a justiça; o seu rosto
olha para os retos."
Salmos 11:7
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
Xamarim - Desenvolvimento Multiplataforma com C# ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Criando sua primeira ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Anatomia da aplicação - Macoratti.net
NET - Apresentando o padrão Model-View-ViewModel - Macoratti.net
Xamarin Forms - MVVM - Macoratti.net
NET - O padrão MVVM (Model-View-ViewModel) revisitado - Macoratti
Xamarin Forms - MVVM - A interface ICommand - Macoratti.net
Padrão de Projeto - Aprendendo o padrão MVVM ... - Macoratti.net