Xamarin FORMS okiem programisty WPF

0
51

W tytule postu przykleiłem sobie etykietkę programisty WPF. Jest w tym sporo prawdy, ostatnie kilka lat mojej pracy to głównie aplikacje desktopowe z wykorzystaniem WPF. Poruszam się dość biegle w XAML-u a od pewnego czasu w projektach średniej wielkości i dużych wykorzystuję MVVM. Wcześniej aplikacje tworzyłem z wykorzystaniem Windows Forms i gdy zacząłem pisać pierwsze aplikacje z wykorzystaniem WPF używałem go w zasadzie w ten sam sposób (tak, da się bez najmniejszego problemu). Po “wyklikaniu” interfejsu całą logikę pisałem w code behind. Nie używałem nawet praktycznie Binding-u. Potem małymi kroczkami zacząłem co raz więcej rzeczywiście używać XAML-a. Wygoda tworzenia interfejsu wprost z XAML-owego kodu jest naprawdę bardzo duża. Wymaga jedynie trochę praktyki.

Tyle tytułem nieco przydługiego i trochę off-topowego wstępu. Ostatnie kilka dni intensywnie dokształcam się w zakresie Xamarin FORMS. Do osiągnięcia poziomu Minimum Viable Product w moim konkursowym projekcie DSP 2017 brakuje mi właśnie jeszcze aplikacji mobilnej. Postanowiłem więc podzielić się pewnymi spostrzeżeniami odnośnie tego jak programista z doświadczeniem w WPF czuje się na tym dość nowym dla siebie terenie aplikacji mobilnych.

Xamarin FORMS sporo zapożycza zarówno z WPF jak i Silverlight (z tym ostatnim akurat miałem jedynie krótkie randez vous. Umarł zanim zacząłem rzeczywiście robić w nim coś ciekawego 🙂 ). Interfejs opisujemy za pomocą XAML-a. Korzystamy również z dobrodziejstw Binding-u, a co za tym idzie możemy stosować wzorzec MVVM, separując logikę aplikacji od mechaniki interfejsu. Wydawało by się, że w zasadzie można wprost przetransferować swoje umiejętności z zakresu WPF do tej technologii i w dużej mierze jest to prawdą. Są jednak pewne różnice, które zauważyłem już na początku:

Kontrolki

W większości są oczywiście inne. Jest ich mniej w stosunku do tego co daje nam WPF. Kontrolki (nazywane tu widokami) są renderowane na każdej z platform, które wspiera Xamarin, do postaci natywnej. Listę kontrolek wraz z dokumentacją znajdziemy w zasobach dokumentacji Xamarin-a.

Layouty

Tworząc UI w WPF najczęściej korzystam tak naprawdę z DockPanel, StackPanel i Grid. O ile Grid zachowuje się w zasadzie tak samo jak w WPF (definiowanie wierszy i kolumn działa identycznie) to nie znajdziemy na liście layoutów DockPanela (nad czym bardzo ubolewam) a StackPanel został zastąpiony przez StackLayout. Dodatkowo pojawiają się RelativeLayout i AbsoluteLayout. Bardzo fajne są opcje wypełniania przez layout zawartości rodzica, które odpowiednio wykorzystane nieco zbliżają StackLayout do tego jak zachowywał się DockPanel. Szczegóły layoutów oczywiście w zasobach dokumentacji Xamarin-a.

DataContext

Tutaj sprawa jest prosta. DataContext nazywa się teraz BindingContext i zachowuje się zgodnie z oczekiwaniami.

DependencyObject i DependencyProperty

Identyczna sytuacja jak w przypadku DataContext. DependencyObject to tutaj BindableObject a DependencyProperty to BindableProperty. Ich użycie natomiast wygląda tak samo jak w WPF.

To tyle jeżeli chodzi o pierwsze spostrzeżenia odnośnie różnic.

Gdzie szukam wiedzy ?

Korzystam z takiego kursu. Tak wiem, ze względu chociażby na tę sytuację, dla wielu osób Udemy jest blee. Mnie natomiast bardzo odpowiada ich model zakupu pojedynczego kursu a nie subskrypcji. W ten sposób mogę czasem coś kupić w dobrej promocji (np. ten kurs kupiłem za 10 euro) i oglądnąć dopiero gdy będę miał na to czas a także wrócić do niego w dowolnym momencie). Jestem też pewien, że akurat te kursy które kupiłem są oryginalnie umieszczone tam przez swoich autorów. Każdy z nich promuje swoje kursy na tej platformie przez swoją stronę i jest też dostępny w razie pytań.

Doskonałe źródło wiedzy stanowią oczywiście zasoby dokumentacji Xamarin-a.

Nieoceniona jest również darmowa książka Charlesa Petzold-a (mam sentyment do tego człowieka, jeszcze w liceum spędziłem wiele godzin nad jego książką do windowsowego API).

Nie testowałem jeszcze Xamarin University. Jak będę miał trochę więcej wolnego czasu to na pewno tam zerknę.

Podsumowując

Dla programisty WPF próg wejścia w technologię Xamarin FORMS wydaje się być naprawdę dość niski. Z pewnością diabeł tkwi gdzieś w szczegółach i wstępną euforię szybko przykrywa konieczność walki chociażby z tematami specyficznymi dla danej platformy systemowej – ale tutaj wszystko jeszcze przede mną :).

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here