10Things nawigacja – implementacja w mobile

Posted by Maciej Gos on Tuesday, March 7, 2017

TOC

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

[code lang=”csharp”]
var page = FeshPageModelResolver.ResolvePageModel();
var navContaincer = new FreshNavigationContainer(page);
MainPage = navContainer;
[/code]

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

[code lang=”csharp”]
var navContainer = new FreshMasterDetailNavigationContainer();
navContainer.Init(“Menu”);
navContainer.AddPage(“Ideas”, null);
navContainer.AddPage(“Settings”, null);
MainPage = navContainer;
[/code]

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

[code lang=”csharp”]
var navContainer = new FreshTabbedNavigationContainer();
navContainer.AddTab(“Ideas”, null);
navContainer.AddTab(“Settings”, null);
MainPage = navContainer;
[/code]

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

[code lang=”csharp”]
public class CustomNavigationContainer : Xamarin.Forms.MasterDetailPage, IFreshNavigationService
{
….
}

var navContainer = new CustomNavigationContainer();
navContainer.AddPage(“Ideas”);
navContainer.AddPage(“Settings”);
MainPage = navContainer;
[/code]

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?

Maciej Gos

真诚赞赏,手留余香

使用微信扫描二维码完成支付


comments powered by Disqus