O FreshMvvm é um Framework Mvvm super leve projetado especificamente para o Xamarin.Forms. Ele foi projetado para ser fácil, simples e flexível.
Como ele se compara a outras opções?
- É super leve e super simples
- Ele foi projetado especificamente para o Xamarin.
- Projetado para ser fácil de aprender e desenvolver (ótimo quando você não está pronto para o RxUI)
Recursos
- Navegação PageModel para PageModel
- Ligação automática do BindingContext
- Ligação automática de eventos da página (por exemplo, appearing)
- Métodos básicos (com valores) no PageModel (init, reverseinit)
- Construído em contêiner COI
- Injeção de Construtor PageModel
- Métodos básicos disponíveis no Model, como Alert
- Tipos de navegação incorporados para SimpleNavigation, Tabbed e MasterDetail
Navegação
A forma Primária de Navegação no FreshMvvm é PageModel para PageModel, essencialmente significa que nossas visualizações não têm idéia da Navegação.
Por exemplo, para navegar entre os modelos de página, use:
await CoreMethods.PushPageModel<QuotePageModel>(); // Pushes navigation stack
await CoreMethods.PushPageModel<QuotePageModel>(null, true); // Pushes a Modal
await CoreMethods.PushPageModel<QuotePageModel> (pm => pm.Quote = "Quote 23") // Pushes Navigation Stack and initializes the property 'Quote' with value 'Quote 23'
O mecanismo de navegação no FreshMvvm é feito através de uma interface simples, com métodos para Push e Pop. Essencialmente, esses métodos podem controlar a navegação do aplicativo da maneira que desejar.
public interface IFreshNavigationService
{
Task PushPage(Page page, FreshBasePageModel model, bool modal = false);
Task PopPage(bool modal = false);
}
No PushPage e no PopPage, você pode fazer qualquer tipo de navegação que desejar, desde uma simples navegação até uma avançada navegação aninhada.
O Framework contém alguns contêineres de Navegação incorporados para os diferentes tipos de Navegação.
Navegação Básica - Integrada
var page = FreshPageModelResolver.ResolvePageModel<MainMenuPageModel> ();
var basicNavContainer = new FreshNavigationContainer (page);
MainPage = basicNavContainer;
Mestre Detalhe - incorporado
var masterDetailNav = new FreshMasterDetailNavigationContainer ();
masterDetailNav.Init ("Menu");
masterDetailNav.AddPage<ContactListPageModel> ("Contacts", null);
masterDetailNav.AddPage<QuoteListPageModel> ("Pages", null);
MainPage = masterDetailNav;
Navegação com guias - incorporado
var tabbedNavigation = new FreshTabbedNavigationContainer ();
tabbedNavigation.AddTab<ContactListPageModel> ("Contacts", null);
tabbedNavigation.AddTab<QuoteListPageModel> ("Pages", null);
MainPage = tabbedNavigation;
Utilizo bastante em meus projetos, por isso resolvi compartilhar aqui, para conhecer mais você pode acessar o repositório no GitHub https://github.com/rid00z/FreshMvvm lá tem mais informações de como implementar em seu projeto, garanto que isso deixa seu projeto Xamarin bem mais simples e limpo.
Vou deixar aqui um exemplo já implementado utilizando SideMenu:
https://github.com/alexandrefreiref/Af.Xamarin.Forms-SideMenu-FreshMvvm
Top comments (0)