10Things nawigacja

10Things nawigacja – implementacja w mobile

A więc mamy kolejny tydzień konkursu, plan jaki sobie założyłem to implementacja nawigacji w 10Things. Jako, że aplikacja będzie korzystać z FreshMVVM dlatego też zacząłem zgłębiać tajniki nawigacji tego framework-a.

FreshMVVM daje nam 3 możliwe opcje nawigacji z pudełka „Basic navigation”, „Tabbed navigation” i „Master Detail navigation”.

Postaram się pokrótce przedstawić każdą z opcji, oraz jak ich użyć w aplikacji.

Jak zaimplementować – basic navigation

Jest to najprostsza i najczęściej spotykana forma nawigacji page-by-page. Zasada jej działania jest oparta na stosie FIFO. W implementacji jest ona bardzo prosta wystarczy zainicjować instancję FreshNavigationContainer.

Przykład

var page = FeshPageModelResolver.ResolvePageModel<MainViewPageModel>();
var navContaincer = new FreshNavigationContainer(page);
MainPage = navContainer;

Jak zaimplementować – master detail navigation

Jest to rodzaj nawigacji często spotykany w postaci szerokiej maści menu i nawigacjach typu rodzic dziecko. Pod maską do obsługi używa Dictionary<string, Page> do przechowania instancji PageModels.

Przykład

var navContainer = new FreshMasterDetailNavigationContainer();
navContainer.Init("Menu");
navContainer.AddPage&lt;MainViewPageModel&gt;("Ideas", null);
navContainer.AddPage&lt;SettingsViewPageModel&gt;("Settings", null);
MainPage = navContainer;

Jak zaimplementować – tabbed navigation

Tabbed navigation jest kolejnym często spotykanym rodzajem nawigacji w aplikacjach mobilnych. W Android jest to pasek zakładek wyświetlany na górze, natomiast w iOS pojawia się on na dole. Implementacja i użycie jest bardzo proste wystarczy utworzyć instancję FreshTabbedNavigationContainer.

Przykład

var navContainer = new FreshTabbedNavigationContainer();
navContainer.AddTab&lt;MainViewPageModel&gt;("Ideas", null);
navContainer.AddTab&lt;SettingsViewPageModel&gt;("Settings", null);
MainPage = navContainer;

Co dalej?

FreshMVVM daje nam dostęp do prostego API dzięki, któremu można w łatwy sposób zaimplementować niestandardową nawigację dziedzicząc po interfejsie IFreshNavigationService.

Przykład

public class CustomNavigationContainer : Xamarin.Forms.MasterDetailPage, IFreshNavigationService
{
....
}

var navContainer = new CustomNavigationContainer();
navContainer.AddPage&lt;MainViewPageModel&gt;("Ideas");
navContainer.AddPage&lt;SettingsViewPageModel&gt;("Settings");
MainPage = navContainer;

Podsumowanie

Jak widzicie implementacja nawigacji nie musi być wcale taka trudna bo można to zrobić lekko łatwo i przyjemnie. Niekoniecznie w takiej kolejności. Na chwilę obecną FreshMVVM wysunął się mocno na prowadzenie względem innych framework MVVM.

Ma on wiele zalet, a przede wszystkim jest bardzo lekki ok. 60kb.

Czy wy macie jakieś swoje ulubione framework MVVM? Jaka funkcjonalność jest dla was najfajniejsza?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *