piątek, 3 marca 2017

Trochę o XAMARIN

Informacji na temat Xamarina w internecie jest mnóstwo, nie wiem więc czy jest sens je tutaj powielać. Myślę, że każda zainteresowana osoba znajdzie w otchłani internetu wszystko co trzeba na początek. Dla mnie ta technologia wydaje się być idealna i powiem krótko o różnicach pomiędzy nią, a adobe air/flex, z którego korzystałem wcześniej oraz o tym jak ja ją postrzegam.

Słowem wstępu

Wyróżniamy dwa główne podejścia: Xamarin natywny i Xamarin.Forms. 
W wersji natywnej mamy powielone sdk platformy na którą piszemy tylko że w c#. Proste i przyjemne, nie musimy się uczyć nowych języków, ale musimy wiedzieć jak działają platformy na które piszemy. Robimy wspólny backend np bazę danych, komunikację z serwerem itp itd i zyskujemy wspólny kod biznesowy, natomiast UI robimy osobno per platforma. Wymaga to od nas sporo wiedzy - im więcej obsługiwanych platform tym więcej musimy ogarniać, a już przy samych Androidzie i iOS trochę tego jest. Robiąc aplikacje dostępną publicznie w sklepach i nastawiając się na klienta zewnętrznego takie podejście jest najlepsze gdy chcemy zrobić UI idealnie takie jak chcemy, które zadowoli wymagającego klienta.
Drugie podejście to Xamarin.Forms - dostajemy projekt PCL z gotowymi kontrolkami, które kompilator zamienia na natywne. Ilość kontrolek i ich dostępne API to oczywiście iloczyn tego co oferują natywne kontrolki i co twórcom Xamarina udało się zaimplementować. Na potrzeby prostych aplikacji gdzie liczy się szybkość developmentu, a UI nie jest najbardziej istotnym czynnikiem takie rozwiązanie jest ok. Nie jest idealne, ale w mojego doświadczenia wynika, że wystarczające, a w razie problemów, mamy do dyspozycji mechanizmy, które pozwalają wstrzyknąć natywne rozwiązania w Formsy. Pisząc moją aplikację do prowadzenia pasieki będę korzystać właśnie z tego rozwiązania.

Słowem porównania

przygotowałem taką tabelkę, są to moje subiektywne oceny:


Co Adobe AIR Xamarin
Cena Za darmo, płatne IDE Za darmo + darmowe IDE
Trudność 6/10 9/10 Natywnie i 6/10 Forms
Wsparcie 5/10 - technologia umiera 7/10 - technologia jest na fali, aczkolwiek dużo tematów na forum.xamarin.com jest bez odpowiedzi
Stabilność 8/10 - lata robią swoje, bugów niewiele 6/10 ale z perspektywą na plus, na razie choroby wieku dziecięcego
Biznesowo Ło panie, znajdź pan deva co w tym pisze Idealnie dla firm które mają stos technolologiczny Microsoftu
Wydajność Nie jest źle, ale odczuwalnie wolniej niż natywnie Ciężko odróżnić od natywnego kodu, chociaż w formsach są bugi (mają być usunięte wg roadmapy)
Dokumentacja Jest wszystko co potrzeba Jest wszystko co potrzeba
Możliwości Ogranicza nas api Flexa, ale można dużo dorobić przy pomocy Native Extensions. Forms mocno ogranicza, ale z drugiej strony zawsze można zrobić wszystko native.
Dodatkowe bilioteki i komponenty Jest tego sporo, czas na rynku zrobił swoje Gwałtownie powstają nowe, można też użyć wieje pakietów z NuGeta

Jak widać Xamarin wygrywa te starcie. Pewnie dlatego zacząłem go używać, jestem tutaj i do was pisze ;) 

0 komentarze: