Artykuł

freeimages.com freeimages.com
sty 17 2017
0

Xamarin.Forms - pół roku komercyjnej pracy

Od jakiegoś pół roku pracuję zawodowo z Xamarin.Forms. Początki zapowiadały się naprawdę obiecująco. Przykładowe aplikacje z Xamarina w większości działały. W UI jest XAML, którego już wcześniej poznałem m.in. przy okazji Universal Apps. Na pokładzie nie mogło zabraknąć również C#. Ponadto bardzo pozytywnie rokowały pierwsze PoC z naszej strony oraz zapewnienia producentów w których to mówiło się o bardzo wysokim procencie współdzielonego kodu, czego dowodem miała być aplikacja Xamarin.CRM. Życie jednak zweryfikowało te realia i pokazało kilka wyraźnych rys na tym pięknym obrazku.

ListView - tragedia

Standardowa kontrolka listy w Xamarin.Forms nie powala ani wydajnością, ani ogólnym zestawem dostępnych funkcji. Wydajność jest szczególnie kiepska jeśli chodzi o Androida. W praktyce więc jeśli oczekujecie rozbudowanej listy, która będzie działać pionowo i poziomo, obsługiwać układ grida oraz oferować inne ciekawe niuanse, to nastawcie się na to, że out of the box nie dostaniecie takiego rozwiązania. Jeśli jako tako znacie rozwiązania natywne, dobrym punktem wyjścia może być stworzenie własnej kontrolki w Xamarin.Forms, która będzie wykorzystywać RecyclerView z Androida oraz UICollectionView z iOS.

Dobrym punktem wyjścia do tego zadania, może być to repozytorium na GitHubie.

Bądź natywny

Jeśli planujecie zrobić jakiś poważniejszy projekt z Xamarin.Forms, gdzie nie możecie pójść na różne ustępstwa narzucone przez twórców tego rozwiązania, to będziecie musieli sięgnąć do Xamarin.Native. Natywne programowanie w Xamarinie jest również realizowane w C# i można powiedzieć że jest to tłumaczenie z Javy i Objective-C. W praktyce korzystamy z wrapperów, które później przerabiane są na natywny kod.

Niestety czy stety, w rzeczywistym projekcie bardzo często odnosimy się do rozwiązań dedykowanych. Niektórych rzeczy po prostu w Xamarin.Forms nie ma. Chcecie dodać podkreślenie do Labela? Stwórzcie Custom renderer, efekt, albo skorzystajcie z niedawno wprowadzonej natywnej deklaracji.

Z każdą kolejną wersją twórcy dodają kolejne usprawnienia, które ułatwiają życie programistom i różnice są naprawdę zauważalne, nie mniej jednak nie uciekniecie od rozwiązań systemowych i trzeba o tym pamiętać. Xamarin.Forms oferuje część wspólną ze wszystkich obsługiwanych systemów.

Wydajność

Wydajność nie jest zła, ale do rewelacji to jeszcze trochę brakuje. Istnieje wiele sposobów, na jej poprawę. Na początek warto zrobić kilka standardowych rzeczy opisanych w tym artykule.

Warto również śledzić roadmapę projektu, która w najbliższych wydaniach zakłada sporo poprawek wydajnościowych.

Błędy natywne i błędy w Xamarin.Forms

Programując w Xamarin.Forms trzeba również uważać na błędy. Mamy w tym przypadku do czynienia z błędami natywnymi z poszczególnych systemów oraz z tymi.. utworzonymi przez programistów Xamarin.Forms. Bugzilla pęka w szwach. Każdy nowy release przynosi sporą dawkę bugfixów, ale niestety czasem generowane są również nowe bugi.

Niektóre założenia deweloperów Xamarina, mogą być czasem dziwne, ale wszystko tak naprawdę zależy od punktu widzenia.

Plusy?

W praktyce nie jest tak strasznie jak mógłby to sugerować powyższy wpis. Jest kilka pułapek i znanych problemów, ale postęp w tej technologii jest wyraźnie zauważalny. Każda kolejna wersja wnosi sporo nowości oraz poprawek. Istnieje wiele ciekawych rozwiązań, które pozwalają dostosowywać Xamarin.Forms do naszych potrzeb. Przy odrobinie większej wprawie, możemy dość łatwo wrzucać natywne wstawki, ale oczywiście wszystko przychodzi z czasem i na początku może być trudno.

Nie mniej jednak jest to mimo wszystko dużo łatwiejsze, szybsze (i tańsze) niż utrzymywanie zespołu do dwóch, lub większej liczby różnych technologii mobilnych.

Podoba Ci się ten wpis? Powiedz o tym innym!

Send to Kindle

Komentarze

blog comments powered by Disqus