Xamarin.Forms – mobilna rewolucja

Autorzy: Tomasz Soroka

14.06.2016


Czy kiedykolwiek wyobrażałeś sobie świat, w którym tworząc jeden kod otrzymasz aplikację, na platformę Android, iOS oraz WindowsPhone? Czy różnice między platformami będą nadal stanowiły barierę? Xamarin Forms to jedynie ciekawostka, czy technologia która zmieni przyszłość aplikacji mobilnych? Podobno diabeł tkwi w szczegółach, zatem zacznijmy od początku.



Pierwszy krok w przyszłość - Xamarin


Przewagą technologiczną firmy Xamarin, jest możliwość tworzenia zaawansowanych aplikacji mobilnych znacznie szybciej i taniej niż w przypadku standardowego podejścia, w którym aplikację na każdą z platform tworzymy korzystając z natywnych języków. W systemie IOS jest to język Objective-C lub Swift, w systemie Android  korzystamy z języka Java, a tworząc aplikację na platformę Windows 10 z języka C#.



Xamarin umożliwia stworzenie w pełni natywnej aplikacji na wszystkie trzy platformy korzystając z jednej technologii, jednego języka programowania. 




Standardowe podejście przy wykorzystaniu Xamarin polega na napisaniu części wspólnej w języku C# i połączenia jej z interfejsami aplikacji na każdej z platform. Umożliwia to współdzielenie kodu na poziomie 40-70% w zależności od podejścia, które zostanie użyte do tworzenia aplikacji. Najpopularniejszym z nich jest framework MvvmCross, który umożliwia współdzielenie kodu do poziomu viewmodeli. 

Xamarin.Forms - one code to rule them all

Od jakiegoś czasu firma Xamarin pracuje nad technologią Xamarin.Forms, która umożliwia większy poziom współdzielenia kodu – nawet na poziomie 97-99%.




Ze względu na korzyści płynące z tej technologii, firma Leaware już od dłuższego czasu obserwuje tę technologię. Nasze doświadczenia związane z Forms’ami, pozwalają nam ocenić jakie rodzaje projektów mobilnych mogą być realizowane z pomocą Xamarin Forms. Głównie dotyczy to:

• prototypów aplikacji
• prostych rozwiązań, do których nie ma wymagań związanych z zaawansowanym interfejsem użytkownika, czy dużą wydajnością
• aplikacji opartych głównie na formularzach



To wszystko co ma do zaoferowania Xamarin.Forms?


Oczywiście nie. Obecna wersja Xamarin.Forms to 2.2, jednak trwają prace nad kolejną wersją o numerze 2.3, która będzie zawierać bardzo dużo ciekawych funkcjonalności tj. CarouselPage. Jednak najważniejszy jest fakt, że release ten działa dużo szybciej niż do tej pory.

Od wersji 2.3 sytuacja uległa dużej zmianie. Firma Xamarin poprawiła największe bolączki tej technologii i wygląda na to iż zaczyna być ona użyteczna w przypadku tworzenia bardziej zaawansowanych projektów. Rozwiązano największe problemy takie jak obsługa skomplikowanych list, rozbudowanych widoków, dostępu do danych czy template’ów.
Przy tym cały czas poziom współdzielenia kodu jest na poziomie 97-99%! Oznacza to, że koszt wykonania aplikacji mobilnej na wszystkie platformy – również na Windows 10 continuum - może być 3 razy mniejszy niż w przypadku tradycyjnego podejścia.
Przy tym cały czas otrzymujemy wysokiej jakości kod, z bardzo dobrą architekturą, dużo prostszy w utrzymaniu i rozwoju niż prowadzenie projektu aplikacji natywnych.



Do jakich projektów Xamarin.Forms? 


Po długiej analizie i burzy mózgów, doszliśmy do wniosku, że technologia ta nadaje się do większości aplikacji biznesowych. Należy pamiętać jednak o ograniczeniach, zanim zdecydujemy się na rozpoczęcie developmentu w tej technologii.


Interfejs użytkownika


Trzeba być przygotowanym na pewne kompromisy – w technologii Xamarin.Forms nie mamy takiej kontroli nad wyglądem ekranów, jak w przypadku korzystania z MvvmCross, ale za to interfejs tworzy się zdecydowanie szybciej. Jeżeli klient jest w stanie iść na niewielkie kompromisy i ma świadomość, że dostaje rozwiązanie dużo tańsze, którego development zajmuje mniej czasu, to nie powinno być większych problemów aby wypracować kompromis w trakcie prowadzenia projektu.





A co jeśli klient zechce wprowadzić zmianę np. tylko dla jednego widoku? Xamarin.Forms oferuje również możliwość wprowadzania własnych, zindywidualizowanych styli za pomocą tzw  custom renderers.




Wydajność

Wydajność Xamarin.Forms nie odbiega mocno od podejścia natywnego, ale trzeba być przygotowanym na pewne kompromisy. Chodzi między innymi o  sposób budowania pewnych komponentów aplikacji, tak aby wykorzystać najlepsze cechy tej technologii.

 

Naszym zdaniem

 

Xamarin.Forms to technologia, która pozwala na znaczne obniżenie kosztów produkcji aplikacji mobilnych na różne platformy. Nie tylko budżet stanowi o przewadze tej technologii ale również czas wykonania, który przy 3 platformach ma niebagatelne znaczenie. Rozwijanie i utrzymywanie aplikacji mobilnych  to kolejna przewaga Xamarin.Forms’ów, które w przypadku tej technologii są implementowane tylko raz.

Mając na uwadze niewielkie kompromisy związane z tworzeniem interfejsu użytkownika oraz wydajnością, musimy przyznać że Xamarin.Forms jest bardzo atrakcyjną technologią wytwarzania aplikacji mobilnych, z której warto zacząć korzystać już teraz.


Sample mobile application developed by means of Xamarin.Forms technology


Warto zapoznać się z aplikacją przygotowaną przez firmę Xamarin na konferencję Xamarin Evolve 2016.


Aplikacja dostępna jest dla platform:

IOS - https://itunes.apple.com/us/app/xamarin-evolve/id618319027
Android - https://play.google.com/store/apps/details?id=com.xamarin.xamarinevolve
Windows - https://www.microsoft.com/en-us/store/apps/xamarin-evolve/9nblggh0ff9k


Kod źródłowy aplikacji dostępny jest pod adresem:

https://github.com/xamarinhq/app-evolve


Film prezentujący działanie aplikacji znajduje się pod adresem:

https://blog.xamarin.com/download-the-xamarin-evolve-2016-conference-app/


Aplikacja napisana w Xamarin.Forms’ach działa szybko, sprawnie, posiada nowoczesny interfejs użytkownika, komunikuje się z zewnętrznym API. 

Na szczególną uwagę zasługuje szybkość działania listy. Jak widać interfejs dopasowany jest do poszczególnych platform:




Jeżeli masz jakiekolwiek pytania o technologię Xamarin, a w szczególności Xamarin.Forms - zapraszamy do kontaktu!