Software Development

Xamarin, czyli jak dotrzeć do 100% rynku mobilnego.

Wrzesień 9, 2016 0
Podziel się:

Witaj w Świecie mobilnym! Zapraszam Cię do poznania Xamarina, jako jednego z kilku podejść tworzenia wieloplatformowych aplikacji mobilnych.


Ale zanim zaczniemy, spójrz na poniższy wykres.

Rynek systemów mobilnych

Źródło: www.idc.com

Jak widzisz, rynkiem mobilnym rządzą dwie platformy – Android i iOS. Windows Phone, mimo małego udziału, jest również brany pod uwagę przy tworzeniu nowych aplikacji.

Coś dla .NETowców

Sięgając parę lat wstecz, programiści .NET w świecie mobilnym mogli mieć wpływ tylko na jeden system – Windows Phone. Ten niestety nie przyjął zbyt dobrze. Aktualnie Windows Phone ma 2-3% rynku smartfonów. Naprzeciw oczekiwaniom wielu programistów pojawił się Xamarin, jako platforma umożliwiająca objęcie prawie 100% mobilnych systemów. To wszystko dzięki aplikacjom tworzonym w C#, które są kompilowane na systemy Android, iOS oraz Windows Phone jako natywne, w 100% wspierające specyficzne dla platform funkcjonalności.

C# zamiast Javy, Objective-C (Swift)?

Xamarin – co i jak?

W dużym uproszczeniu – Xamarin to darmowy ekosystem pozwalający na tworzenie wieloplatformowych aplikacji w C#, w skład którego wchodzą:
Xamarin.iOS i Xamarin.Android, które są .NETowymi implementacjami Mono dla wiodących systemów mobilnych. Jako programiści Xamarina, mamy dostęp do 100% API, więc można stwierdzić, że “wszystko co możemy napisać natywnie w Javie czy w Objective-C, może być stworzone w C#”.

Jak to się dzieje?
Kompilator Xamarin.iOS kompiluje AOT(Ahead of time) aplikacje do natywnego kodu dla ARM, który jest uruchamiany bezpośrednio na iPhone’ach.
Natomiast kompilator Xamarin.Android kompiluje do języka IL (Intermediate Language), następnie by uruchomić aplikację, korzysta z JIT (Just in time).
Dzięki tym zabiegom, Xamarin jest transparentny dla docelowych systemów mobilnych, tworząc natywne, w pełni funkcjonalne aplikacje.

Wartość komercyjna

Znane są trzy podejścia do tworzenia wieloplatformowych aplikacji. Różnią się one jakością końcowego produktu, kosztami wytworzenia oprogramowania oraz sposobami utrzymywania takich aplikacji.

Pierwszym sposobem, zarazem najpopularniejszym, jest tworzenie trzech niezależnych aplikacji na każdą z platform. Każdy projekt jest rozwiany w innej technologii i w innym języku – Android w Javie, iOS w Objective-C lub Swift Windows Phone w C#. Minusem takiego rozwiązania są koszty wytworzenia aplikacji, ponieważ zazwyczaj musimy zaangażować trzy niezależne zespoły programistów. W tym przypadku nie mamy również możliwości współdzielenia kodu pomiędzy platformami, co może być kluczowe przy bardziej zaawansowanych aplikacjach. Utrzymując takie aplikacje, dodając nowe funkcjonalności, zmieniamy kod w trzech miejscach, zamiast w jednym – zasada DRY (Don’t Repeat Yourself) 🙂

Drugim sposobem są aplikacje hybrydowe, które tworzone przy pomocy HTML, CSS i JavaScript, są z pozoru najtańszym rozwiązaniem. Kod aplikacji jest współdzielony, napisany raz. Dodatkowo, przy minimalnym nakładzie pracy, działają na każdej z liczących się platform. Założenia obiecujące, lecz realizacja… kiepska. Tego typu aplikacje są z założenia stronami internetowymi, które umieszczone w odpowiednie kontrolki “symulują” zachowanie i wygląd natywnych aplikacji. Niestety w znakomitej większości, tego typu aplikacje nie spełniają oczekiwań coraz bardziej wymagających użytkowników. Dodatkowo, programiści ubolewają nad ograniczonym dostępem do pełnego API systemów mobilnych.

I w końcu – co w przypadku, gdy klient oczekuje najwyższej jakości aplikacji przy mniejszym budżecie, niż w przypadku rozwiązań natywnych?

Naprzeciw przychodzi Xamarin, jako trzeci sposób tworzenia wieloplatformowych aplikacji. Tworząc aplikacje w tej technologii, zapewniamy użytkownikom natywny wygląd, wydajność i użyteczność aplikacji.
Xamarin pozwala na współdzielenie kodu logiki aplikacji, dzięki czemu unikamy powielania pracy programistów. Dodatkowo nie potrzebujemy trzech zespołów developerów. Jeden zespół jest w stanie stworzyć trzy aplikacje, na każdy z systemów. Ta możliwość czyni Xamarina tańszym sposobem tworzenia natywnych aplikacji!
Gdy zdecydujemy się na wybór dodatkowych frameworków, które przykładowo implementują wzorzec MVVM, mamy szansę stworzyć użyteczne, skalowalne aplikacje, które są łatwe w utrzymaniu. A to wszystko w C#!

Podsumowując

Xamarin, jako nowe podejście do tworzenia natywnych aplikacji jest niewątpliwie ciekawym wyborem.
Dodając odrobinę goryczy do pokrytych lukrem zalet, warto wspomnieć, że proces tworzenia aplikacji w Xamarinie jest nie jest aż trzy razy tańszy, niż w przypadku rozwiązań natywnych. Dodatkowo, w dalszym ciągu niezbędna jest wiedza osoby znającej natywne API danej platformy mobilnej. Jest jeszcze wiele innych zmiennych, które decydują o wyborze właściwego rozwiązania. Na przedstawienie kolejnych przyjdzie jeszcze pora 🙂

Na koniec, krótko o mojej przygodzie z Xamarinem:
Od końca 2014 roku, Xamarin jest główną technologią zespołu tworzącego aplikacje mobilne w Praktyce Digital w Sii. Zrealizowaliśmy wiele projektów tworząc dobrej jakości, użyteczne aplikacje dla systemów iOS, Android i Windows Phone. My podjęliśmy decyzję. Teraz czas na Ciebie 🙂

Jeśli interesuje Ciebie Xamarin, chcesz dowiedzieć się więcej o studiach przypadków naszych projektów, bądź poznać nasze praktyki tworzenia aplikacji – daj znać! Mamy jeszcze wiele do powiedzenia 🙂

Tagi: ,

Zostaw komentarz