Pierwszym krokiem w tworzeniu aplikacji mobilnej jest określenie, czy powinna być natywna, czy „internetowa”.
Ta decyzja będzie miała wpływ na każdy kolejny etap rozwoju projektu, od zatrudnienia odpowiednich programistów po określenie na jakich urządzeniach aplikacja będzie dostępna.
Obecne technologie pozwalają na tworzenie hybrydowych aplikacji – albo przez pisanie kodu JavaScript i wykonywanie go w aplikacji natywnej, jak Adobe PhoneGap, React Native lub przez kompilowanie kodu C# lub Java na natywny kod, np. Xamarin. Należy jednak pamiętać, że szybkość działania takich aplikacji może być niezadowalająca, szczególnie w przypadku tanich telefonów, które nie mają dużo pamięci lub mocy obliczeniowej.
Niezależnie od wybranej technologii hybrydowej, tylko część aplikacji będzie w rzeczywiście hybrydowa. W niektórych przypadkach będziemy zmuszeni część elementów aplikacji programować natywnie.
Warto wiedzieć, że istnieją rygorystyczne ograniczenia możliwości projektowania aplikacji mobilnych w zależności od wybranego rozwiązania. Ograniczają wynikają z tego iż programiści muszą korzystać z predefiniowanych elementów danej technologii, które mogą być uruchomione na danym systemie operacyjnym (Android/iOS)
Gwałtowny rozwój internetu, udowadnia nam, że technologie internetowe mogą być wykorzystywane w wielu sytuacjach gdzie programiści będą dostosowywać się do nowego stanu rzeczy, i w ten sposób mogą tworzyć nowy trend. Aplikacje internetowe są tego przykładem. Są to zasadniczo strony internetowe zaprojektowane w ten sposób by wyglądały jak aplikacje mobilne.
Podczas gdy aplikacje natywne bezpośrednio współdziałają z systemem operacyjnym, aplikacje internetowe współdziałają z przeglądarką. To poszerza grupę potencjalnych odbiorców, pozwalając aplikacji działać na prawie każdym urządzeniu, o ile posiada przeglądarkę internetową.
Odpowiednio zaadaptowany HTML pozwala aplikacjom łatwo dopasować się do dowolnego rozmiar i rozdzielczości ekranu. Jednak te aplikacje pozostawiają wiele do życzenia w odniesieniu do wydajności, zwłaszcza na urządzeniach mobilnych. Wygoda korzystania z aplikacji internetowej zależy od mocy obliczeniowej telefonu użytkownika.
Aplikacje typowo natywne mają znacznie większą wydajność w stosunku do odpowiedników aplikacji internetowych. Dostępność do danych jest dużo szybsza, a sama aplikacja jest w stanie uzyskać pełen dostęp do możliwości urządzenia.
Niestety, natywna aplikacja działa tylko w jednym systemie operacyjnym. Aplikacja opracowana dla systemu Windows musi zostać przebudowana na Androida, iOS a nawet na nowsze wersje systemu Windows, aby zachować zgodność.
Zatrudnienie zespołu programistów dla każdego systemu operacyjnego jest kosztowną decyzją i nie jest to możliwe dla wielu firm (dlatego dużo aplikacji firmowych dostępnych jest tylko dla jednej platformy).
Wybór między aplikacją internetową, natywną lub hybrydową w dużej mierze zależy od potrzeb Twojego projektu. Koszt i niezawodność to na pewno nie jedyne czynniki, którymi należy się kierować. Oto trzy pytania, które warto sobie zadać zanim dokonamy wyboru:
Czy aplikacja bazuje na funkcjonalnościach urządzenia?
Telefony komórkowe mają wiele czujników, funkcji takich jak akcelerometry, żyroskopy, odbiorniki GPS, kamery i inne. Jeśli projektujesz aplikację, która będzie korzystać z tych funkcji, aplikacja natywna najlepiej spełni Twoje oczekiwania.
Czy aplikacja wymaga zaawansowanych animacji i interakcji?
Gry internetowe mogą działać dobrze na komputerach stacjonarnych, ale na urządzeniach mobilnych są praktycznie bezużyteczne. Gry są jedynymi z najbardziej wymagających procesów które obciążają urządzenie. Pisanie gier natywnie gwarantuje płynność działania.
Czy aplikacja ma jedynie wyświetlać dane?
Projekty, które opierają się na wyświetlaniu informacji z powodzeniem mogą być obsługiwane przez aplikacje internetowe. Dzięki wyborowi tej technologii można w łatwy sposób skalować aplikację na wiele urządzeń przy zachowaniu funkcjonalności i przyzwoitej wydajności.
Natywne aplikacje bardziej angażują odbiorców, ale aplikacje internetowe są znacznie tańsze i łatwiejsze do wdrożenia w szerokiej gamie urządzeń, o ile cel aplikacji jest prosty. Im bardziej skomplikowany projekt, tym mniej korzystne będą technologie hybrydowe, zwłaszcza jeśli chodzi o Xamarin, który bardzo dobrze sprawdza się przy aplikacjach typowo biznesowych wymagających niezawodnego działania.
Rozwiązania hybrydowe mogą kiedyś być jedynym słusznym wyborem w przypadku tworzenia aplikacji mobilnych, ale obecnie bez dedykowanych programistów dla każdego systemu operacyjnego trudne będzie nam stworzyć wysoce zaawansowaną aplikację o tych samych funkcjonalnościach na każde urządzenie.
Przy projektowaniu nowej aplikacji mobilnej ważne jest, aby pamiętać o tych różnicach.