
Klasa Device w Xamarin.Forms
- Kategoria: Programowanie, autor: Jerzy Piechowiak
- Tagi: XAML, C#, .Net, Xamarin
- Odsłony: 3759
W poprzednich wpisach sporo pisałem o różnych sposobach obsługi poszczególnych systemów wspieranych przez aplikację. Odradzałem wykorzystywanie projektów typu Shared, zachęcałem zaś do bibliotek portable.
Rozwiązanie w wariancie portable niesie swoje ograniczenia, ale tak na dobrą sprawę wymusza na programiście bardziej przemyślane podejście i zwiększa przejrzystość tworzonego kodu. Okazuje się jednak, że nawet w takiej sytuacji, można skorzystać z pewnych specjalnych rozwiązań przygotowanych przez twórców Xamarina. Konkretniej chodzi o klasę Device, która wystawia dwie istotne właściwości oraz udostępnia kilka przydatnych metod, które pozwalają na uruchamianie kodu specyficznego dla poszczególnych systemów.
Idiom i OS
Klasa Device pozwala na łatwe sprawdzenie rodzaju używanego i systemu operacyjnego. Obie te rzeczy możemy zweryfikować za pomocą dedykowanych enumów. Pierwszy (Idiom) wystawia wartości:
- Desktop
- Phone
- Tablet
- Unsupported
Drugi z nich (OS) skupia się na systemach operacyjnych. Nie podaje konkretnej wersji, ale pozwala nam na ogólne stwierdzenie czy mamy do czynienia z Androidem, iOSem, Windowsem, Windows Phonem, czy też może jeszcze z innym, niesklasyfikowanym systemem.
Dzięki temu możemy zrobić proste wstawki z kodem, które będą realizować zadania tylko w przypadku gdy mamy do czynienia z określonym OSem.
Metody
Klasa Device wykształca też pewien zbiór metod. Do najważniejszych z nich zaliczyłbym poniższy zestaw, który występuje w różnych przeciążeniach:
- BeginInvokeOnMainThread - pozwala na wywołanie akcji na wątku UI. Przydatne w przypadku blokujących operacji
- GetNamedSize - Xamarin.Forms predefiniuje kilka wielkości dla fontów - np. Small, czy Large. Po ich przekazaniu do tej metody (enum), otrzymamy rzeczywistą wartość double, w systemie w którym wywołano metodę
- OnPlatform(Action, Action, Action, Action) - wywołuje inne akcje zależnie od systemu. Kolejno iOS, Android, Windows Phone, akcja domyślna
- OnPlatform
(T, T, T) : T - zwraca inne wartości dla określonej właściwości w zależności od systemu. Kolejność jak wyżej - StartTimer - pozwala na uruchomienie Timera, który zadziała na każdym systemie. Niestety nie jest on do końca funkcjonalny i sprawdza się raczej tylko w prostych operacjach
Na stronie dokumentacji można znaleźć konkretne przykłady dla poszczególnych metod, dlatego też pominę je tutaj. Warto jednak pamiętać o tej klasie, ale jak wszystko - stosować z rozsądkiem i umiarem;)
Rekomendowane

Cena: 49,00 zł
Komentarze