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:
Prześlij komentarz