Co to ten Xamarin i Xamarin.Forms

Xamarin logoW tym wpisie opiszę czym jest Xamarin, dlaczego Xamarin.Forms są intersującym rozwiązaniem, skąd to wziąć i jak zainstalować.

Zapraszam do czytania.

Ok więc od początku…

Czym jest Xamarin.
Xamarin to platforma do budowania aplikacji na główne systemy mobilne tzn. na Androida, IOS-a, a ostatnio także na Windows. Co jest moim zdaniem w tym wszystkim najlepsze – to to, że można programować aplikacje z wykorzystaniem języka C# na wszystkie wcześniej wymienione platformy współdzieląc znaczą część kodu pomiędzy tymi systemami. Jedyne o co musiałeś się martwić to napisać interfejs użytkownika specyficzny dla danej platformy. Innym bardzo ważnym aspektem jest to ,że kod pisany w Xamarin jest mapowany bezpośrednio do natywnych odwołań odpowiedników API na danych platformach. Oznacza to, że szybkość działania aplikacji jest porównywalna z szybkością działania aplikacji natywnych. Oczywiście koncept pisz jeden kod i uruchamiaj wszędzie nie został tutaj zachowany w 100%. Ponieważ cały czas musiałeś dbać o szczególne różnice specyficzne dla każdej platformy, aby wydobyć z nich to co najlepsze w swoich aplikacjach. Jednak możliwość współdzielenia kodu oraz brak konieczności pisania w różnych językach był dużym krokiem na przód, co przyczyniło się do dużego wzrostu popularności rozwiązań firmy z San Francisco.

Xamarin.Forms
W momencie ogłoszenia wersji 3 Xamarin do zestawu rozwiązań doszedł nowy sposób tworzenia aplikacji. Jak pisałem wyżej przed pojawieniem się Xamarin.Forms, trzeba było pisać interfejs użytkownika pod daną platformę. Można było przeliczyć, że około 50-60% kodu było wspólne (co i tak było bardzo dobrym wynikiem i dużą oszczędnością). Według szacunków z wykorzystaniem Xamarin.Forms można uzyskać poziom około 90% wspólnego kodu pisząc jeden interfejs wspólny dla każdej z obsługiwanych platform. W momencie pojawienia się Forms posiadały 40 różnych kontrolek, które umożliwiały pisanie UI na różne platformy. Dziś mamy już wersje 2.0 tej biblioteki. W tej wersji doszła na razie jako beta najnowsza platforma Windows czyli Universal Windows Platform (UWP), a wcześniej można też było tworzyć kod dla Windows 8 i Windows 8.1.
W Xamarin.Forms można pisać kod na dwa sposoby, w tzw. code behind w C# lub za pomocą XAML. Drugi sposób dla osób z doświadczeniem w WPF jest bardzo wygodnym rozwiązaniem.

Xamarin.Forms są to tzw. warpery na natywne kontrolki. Oznacza to, że np. odwołując się do kontrolki Label w Formsa-ch odwołujemy się do ich natywnych odpowiedników w poszczególnych platformach pisząc tylko jeden kod. Ponadto kontrolki Xamarin.Forms są w pełni edytowalne i konfigurowalne tzn. w przypadku gdy Ci czegoś brakuje, możesz poszukać gotowego rozwiązania lub napisać własne.

Czemu to jest takie drogie?
Tak Xamarin nie jest za darmo. Jeżeli wejdziesz na stronę Xamarin na pewno zdziwisz się jak bardzo cenią swoje rozwiązania. Nie będę tutaj wnikał dlaczego takie ceny, a nie inne, tylko podam Ci moim zdaniem najlepsze rozwiązania, oraz plusy i minusy każdego z nich.

  • Xamarin dla studentów jest to bez wątpienia najlepsze rozwiązanie ponieważ po udanej weryfikacji twojego konta pocztowego w domenie edu dostajesz dostęp do wersji biznes, na dwie platformy (IOS i Android). Wersja biznes dajcie ci możliwość pisania aplikacji w Visual Studio. Sam posiadam dostęp do tej opcji i przyznam, że właśnie to było czynnikiem decydującym, aby przyjrzeć się bliżej tej platformie.
  • Wersja starter, jeżeli chcesz spróbować, to ta wersja pozwoli Ci wyrobić zdanie na temat tej technologii i podjąć dalsze decyzje. Ograniczeniem jest wielkość aplikacji w kb jaką możesz napisać. Wersja ta pozwala wstawiać aplikacje do sklepu danej platformy.
  • Indie developer to 25$ na miesiąc. Jest do opcja dla osób, które nie mają dostępu do maila z uczelni, a chcą pobawić się Xamarin-em. Jedyną poważna wadą tej wersji jest to, że nie posiada integracji z VS, więc nie możesz pisać aplikacji na platformę UWP, ponieważ Xamarin Studio nie posiada takiej możliwości.

Skąd pobrać i jak zainstalować
Po decyzji jaką opcję wybrać powinieneś mieć już założone konto. Z panelu Twojego konta możesz pobrać instalator. Jednakże uwaga w wersji Visual Studio 2015 Comunity Edition możesz zainstalować Xamarin z poziomu instalatora VS.

Na koniec watro dodać, że 24 lutego br. świat obiegła informacja o tym, że Microsoft wykupił Xamarin. Co to może oznaczać? Jeszcze nie ma zbyt wielu informacji na ten temat. Najbliższe informacje będą ogłoszone na konferencji Build 2016 w marcu br. Osobiście uważam, że wyniknie z tego więcej dobrego niż złego, ale czas pokaże…

Następne posty będą mniej teoretyczne, a będzie w nich więcej programowania niż ostatnie trzy wprowadzające. Wydaje mi się jednak, że były one potrzebne aby rozpocząć tę serię postów. Dlatego w następnym poście zrobimy pierwszego comita.

  • Raoul Duke

    Czyli rozumiem, że osoba rozpoczynająca przygodę z programowaniem nie ma czego szukać w Xamarinie? Bo skoro się uczę C# a chciałbym stworzyć w nim coś na androida to i tak muszę znać cos z Javy?

  • Cześć

    Po pierwsze dziękuje za komentarz.

    Co do Twojego pytania to jestem przekonany że możesz rozpocząć zabawę w Xamarin, bez znajomości Javy. Nie będzie Ci ona do niczego potrzeba. Java to język programowania jak C#, Android to system, lub też platforma na której własnie dzięki Xamarin możesz programować aplikacje w języku C# na wcześniej wspominanego Androida, a także na iOS i mobilne wersje Windowsa.

    Pozdrawiam.

    • Raoul Duke

      Witam. Nawet się nie przywitałem w poprzednim wpisie :) Chodzi mi dokładnie o to czy ucząc się C# i programując w Visual Studio i po poznaniu podstaw gdy np sam będę potrafił napisać kalkulator to nie będzie problemu by stworzyć np ten sam kalkulator w Xamarin na telefon z androidem? Czy tam już składnia jest całkiem inna? Czy w ogóle trzeba instalować VS czy wystarczy Xamarin i w nim sobie pisać aplikacje w C#? BO rozumiem by publikować coś W Windows store to muszę używać VS. A by to zrobić w google store? Jestem rozdarty po prostu i nie wiem czy uczyć się Javy czy C#. Docelowo chciałbym coś na swój telefon z androidem pisać ale to mają być proste apliakcje jak obliczanie za ile muszę zatankować auto podając cene benzyny spalanie i liczbę km, i tym podobne :)

      • Cześć, sorki że tak późno odpisuje.

        Odpiszę w kilku punktach bo jest kilka pytań:
        1. “…to nie będzie problemu by stworzyć np ten sam kalkulator w Xamarin na telefon z androidem?” – jak opanujesz dodatkowo podstawy tworzenia interfejsu użytkownika to bez problemu napiszesz taki kalkulator dla Androida

        2. “…Czy tam już składnia jest całkiem inna?” – składnia języka jest taka sama, natomiast jak pisałem wyżej należy również podpatrzeć/poczytać jak stworzyć interfejs użytkownika, przyciski, etykiety (label) itd… w przypadku Androida robisz to za pomocą xml-a, w przypadku gdybyś uczył się Xamarin.Forms, w XAML-u

        3. “Czy w ogóle trzeba instalować VS czy wystarczy Xamarin i w nim sobie pisać aplikacje w C#?” – Tutaj trochę mylisz pojęcia, Xamarin jest jakby nakładką na VS, więc instalujesz VS i do niego do doinstalowujesz Xamarin, gdzie później masz tzw template do nowych projektów jak np “blank Adnroid app” UWAGA, chyba że programujesz na macu, wówczas instalujesz Xamarin i programujesz w Xamarin Studio.

        4. “…BO rozumiem by publikować coś W Windows store to muszę używać VS. A by to zrobić w google store?” – Do publikacji wystarczy ci przeglądarka, konto programisty w sklepie google i skompilowana i przygotowana paczka aplikacji stworzona w Visual Studio od A do Z, nie potrzeba nic więcej.

        5. Co do decyzji o nauce programowania Java czy C# musisz sam zdecydować, w Javie masz możliwość tylko Android, a w C# dzięki Xamarin, masz możliwość pisać apki na wszystkie platformy mobilne. Na pocieszenie dodam że te dwa języki są bardzo do siebie podobne, wiec jak opanujesz jeden to zrozumiesz składnie drugiego.

        Pozdrawiam