Xamarin.Forms czy Xamarin Native: Którego użyć w projekcie aplikacji na wielu platformach (cross-platform)?

Jeśli chodzi o wieloplatformowe (cross-platformowe) narzędzia programistyczne nie ma wątpliwości, że Xamarin to dobry standard. Ale gdy już zdecydujemy się na tworzenie aplikacji w językach C# i Xamarin, musimy dokonać jeszcze jednego wyboru: czy powinniśmy używać Xamarin.Forms, czy programować aplikację bezpośrednio w Xamarin.iOS i Xamarin.Android? Uwaga: programiści często odnoszą się do Xamarin.Android i Xamarin.iOS jako Xamarin Native lub Xamarin Traditional. W tym poście będziemy używać terminu Xamarin Native. Na najbardziej podstawowym poziomie decyzja ta sprowadza się do oszacowania czasu i kosztów programowania. Ważne jest również zapewnienie w pełni natywnego doświadczenia w aplikacji. Xamarin.Forms to narzędzie programowania, dzięki któremu możemy tworzyć wspólny kod interfejsu użytkownika na wielu platformach. Jeżeli programujemy w Xamarin.iOS i Xamarin.Android, prace nad rozwojem interfejsu użytkownika są wykonywane na platformach rodzimych. Xamarin.Forms zapewnia największą wydajność programistyczną. Na stronie xamarin.com znajdziemy informację, że używając Xamarin.Forms można dzielić 100% projektowanego kodu i interfejsu użytkownika w systemach iOS, Android i Windows Mobile. Z drugiej strony, jeśli decydujemy się na Xamarin Native, górne limity wspólnego kodu będą wynosić około 75%.

Przyjrzyjmy się zatem czynnikom, które mogą wpłynąć na decyzję o wyborze jednego lub drugiego rozwiązania.

Cztery powody, dla których warto wybrać Xamarin.Forms

1. Niewielki budżet

Od kiedy tworzymy aplikacje mobilne budżet to temat, który zawsze pojawia się na wczesnym etapie naszych rozmów z potencjalnymi klientami. Jeśli Twoje uzasadnienie biznesowe dla aplikacji MVP (Minimum Viable Product – minimalny działający produkt/aplikacja) wymaga uruchomienia zarówno w systemie iOS, jak i na Androidzie oraz nie chcesz ponosić od razu dużych kosztów, Xamarin.Forms może być najlepszym rozwiązaniem.

2. Musisz jak najszybciej wprowadzić swoją aplikację na rynek

Niezależnie od tego, czy współpracujesz już z firmą deweloperską, czy wewnętrznie rozwijasz aplikację, wydajność używania Xamarin.Forms może pomóc w szybszym wprowadzeniu aplikacji na rynek.

3. Chcesz, aby Twoje aplikacje były łatwe do zaktualizowania

Jedną z największych, ale niekiedy pomijanych zalet korzystania z Xamarina w tworzeniu aplikacji cross-platformowych (wieloplatformowych) jest uproszczenie procesu aktualizowania aplikacji w jednym czasie. Dotyczy to zwłaszcza Xamarin.Forms. Ponieważ, bardzo duży procent kodu jest współdzielony na wielu platformach, aktualizacje funkcji mogą być znacznie łatwiejsze do przeprowadzenia, zarówno na urządzeniach z systemem Android, jak i iOS.

4. Twój zespół programistów jest bardziej doświadczony w .NET niż Android i iOS

Istnieje wiele niuansów w programowaniu aplikacji na platformy mobilne, szczególnie jeśli chodzi o projektowanie interfejsu użytkownika. Jeśli Twój zespół programistów ma doświadczenie w technologiach Microsoft i C#M, może zrobić to sprwaniej w Xamarin.Forms. Nie oznacza to jednak, że możesz stworzyć działającą aplikację bez wiedzy o programowaniu na platformach mobilnych. Oznacza to, że napisanie aplikacji zajmie po prostu mniej czasu i wygeneruje mniej kosztów.

Trzy powody, dla których warto wybrać Xamarin Native (Xamarin.iOS i Xamarin.Android)

1. Potrzebujesz niewielkiego rozmiaru aplikacji

Środowisko programowania Xamarin.Forms, które pozwala tworzyć aplikacje na systemy iOS i Android, zwykle prowadzi do zwiększenia rozmiaru tych aplikacji. Większa ilość kodu może powodować, że proces ładowania trwa dłużej, szczególnie w systemie Android. Xamarin i Microsoft poczynili znaczne postępy w poprawieniu wydajności, ponieważ obie firmy połączyły swoje siły na początku 2016 roku. Nie można jednak zaprzeczyć, że wieloplatformowa aplikacja zbudowana w Xamarin.Forms może powodować pewne opóźnienia działania wszystkich funkcji, zwłaszcza tych wymagających przetwarzania dużej ilości danych z multimediów, takich jak obrazy, wideo lub animacje. Aplikacje natywne zazwyczaj działają lepiej, ponieważ ich kod ma bezpośredni dostęp do unikalnych funkcji sprzętowych. Tak więc, jeśli Twoja aplikacja musi błyskawicznie przetwarzać dane, by dostarczyć świetny odbiór użytkownika (User Experience – UX), powinieneś zastanowić się nad wyborem Xamarin Native.

2. Twoja aplikacja ma dużo animacji lub/i rozbudowany interfejs użytkownika

Jeśli twoja aplikacja ma skomplikowany interfejs użytkownika z dużą ilością grafiki, należy wybrać Xamarin Native, aby zapewnić optymalną wydajność. Xamarin.Forms, jak wskazuje nazwa, został zaprojektowany z myślą o strukturze interfejsu użytkownika, która zapewnia przejrzystość oraz prostą formę aplikacji. Dynamiczne treści można lepiej dostosować do aplikacji kodowanej w języku C# z Xamarinem, ale zaprojektowanej na platformach natywnych w Xamarin.iOS i Xamarin.Android.

3. Aplikacja umożliwia korzystanie z natywnych (specyficznych funkcji zależnych do urządzenia) funkcji, które nie są dostępne na obu platformach

Producenci systemów operacyjnych na urządzenia mobilne, takich jak Android czy iOS, rywalizują ze sobą z każdą nową wersją systemu wypuszczaną na rynek. Istnieją zatem pewne funkcje, które są dostępne tylko na jednej platformie. W tym przypadku Xamarin.Forms nie zapewnia pełnego wsparcia dla tych funkcji. Prostym przykładem może być widżet na iOSie nazywany „kontrolą segmentową” (Segmented Controls), dla którego Xamarin.Forms nie ma analogicznych kontrolerów. W Xamarin.Forms można zawsze zaimplementować pewne funkcje samodzielnie, ale to wymaga dodatkowego czasu poświęconego na tworzenie widżetów interfejsu użytkownika. Tak więc, jeśli Twoja aplikacja posiada pewne unikalne funkcjonalności właściwe dla danej platformy, to warto się zastanowić nad wykorzystaniem Xamarin Native w jej projektowaniu.

Podsumowanie

Narzędzie programowania na wielu platformach jednocześnie, takie jak Xamarin.Forms doskonale sprawdza się w przypadku projektów prostszych, które wykorzystują podstawowe funkcje urządzeń mobilnych oraz wymagają jak najszybszego wprowadzenia na rynek. Możemy wtedy skrócić czas prowadzenia projektu, a pieniądze zaoszczędzone na tworzeniu aplikacji przeznaczyć np. na jej marketing.
Jeżeli natomiast potrzebujemy rozbudowanej graficznie aplikacji, która będzie przetwarzała duże ilości danych wykorzystując, np. multimedia oraz będzie szybka, stabilna i niezawodna to warto zastanowić się nad rozwiązaniami dedykowanymi dla poszczególnych platform.

Comments are closed.