Czy potrzebujesz natywną aplikację mobilną?

W wielu firmach, które chcą rozwinąć swoją działalność na urządzenia mobilne pojawia się idea stworzenia aplikacji mobilnej. Z częstego braku wiedzy o innych rozwiązaniach, te firmy zlecają stworzenie natywnej aplikacji mobilnej zewnętrznemu dostawcy. Powtarzającym się problemem tutaj jest fakt, iż przy natywnych aplikacjach trzeba stworzyć tak naprawdę dwie aplikacje na osobne platformy (np. iOS i Android). Przekłada się to na duże koszty i dłuższy czas developmentu aplikacji. W praktyce okazuje się jednak, że stworzenie natywnej aplikacji mobilnej jest rozwiązaniem zdecydowanie „na wyrost” i wykorzystując inne technologie, jak, chociażby rozwiązania cross-platformowe typu React Native, można w tym samym budżecie zrealizować dużo więcej funkcjonalności – lub zwyczajnie oszczędzić nawet do kilkudziesięciu procent budżetu na wykonanie projektu.

Dlatego w tym artykule postaram się pokazać Ci, że warto się zastanowić, czy przy ustalonym budżecie inne rozwiązanie nie będzie lepsze - będziemy mogli zrealizować więcej funkcjonalności, które użytkownicy docenią bardziej niż natywność aplikacji.

Czym jest natywna aplikacja mobilna i dlaczego nie zawsze jest ona najlepszym rozwiązaniem?

Natywne aplikacje mobilne cechują się tym, że są tworzone z myślą o konkretnych platformach - jak na przykład iOS lub Android – i będzie można je uruchomić wyłącznie na nich. W praktyce oznacza to, że jeśli chcemy stworzyć aplikację natywną i pokryć więcej niż jeden ekosystem, tak naprawdę trzeba będzie stworzyć dwie osobne aplikacje, a następnie je utrzymywać i aktualizować.

Mimo tego ogromna ilość aplikacji na rynku są tworzone z użyciem natywnych technologii - dlaczego? Aplikacje natywne ze względu na to, że są dopasowane do określonej platformy, cechują się znacznie mniejszą ilością lub brakami ograniczeń w swoich funkcjonalnościach. W technologiach cross-platformowych część modułów urządzenia może być niedostępna, w przypadku technologii natywnej – np. Swift lub Kotlin - są dostępne od ręki.

Aplikacje tworzone w technologii natywnej z reguły są bardzo dobrze zoptymalizowane i zaprojektowane pod spełnianie określonych zadań użytkowników. Z reguły działają szybciej niż aplikacje cross-platformowe i zajmują mniej miejsca w pamięci urządzenia. Nie jest to ogromna różnica, ale w niektórych typach aplikacji stanowi to istotną zaletę.

Dlaczego aplikacja natywna nie zawsze jest dobrym rozwiązaniem?

Ze względu na ogromne możliwości technologii natywnej może się wydawać, że aplikacje natywne zawsze są najlepszym rozwiązaniem. Problem polega na tym, że koszt ich stworzenia jest znacząco większy w porównaniu do innych technologii. Jeśli chcemy, aby nasza aplikacja była dostępna przykładowo na iOS i Android, trzeba będzie stworzyć dwie, praktycznie osobne aplikacje, które będą wymagały więcej czasu zespołu developerów.

Najważniejszym z powodów, dlaczego aplikacja natywna nie zawsze jest odpowiednim rozwiązaniem, jest bardzo częsty przerost formy rozwiązania technologicznego nad potrzebami.

W praktyce bardzo często projekty aplikacji mobilnych - czy to w e-commerce, SaaS, platformach społecznościowych lub innych - nie są na tyle skomplikowane i nie wykorzystują w pełni zalet technologii natywnych, aby istniała realna potrzeba ich wykorzystania. W innych rozwiązaniach, jak na przykład PWA (Progresywna aplikacja Webowa), czy technologii cross-platformowych, można stworzyć te same funkcjonalności co w technologii natywnej. Praktycznie większość ograniczeń innych technologii, o których wspominaliśmy, okazuje się nie być istotnym problemem. Obawy dotyczące ograniczeń zawsze można rozwiać, wykonując prostą aplikację w podejściu „proof of concept” – tworząc możliwie najprostszą aplikację z funkcjonalnością, do której mamy obawy - lub zdać się na doświadczenie developera w przypadku, gdy realizował już podobne projekty. Stworzenie dobrego UX jest równie proste co w technologiach natywnych i bardzo często użytkownicy nawet nie zdają sobie sprawy z tego, że właśnie korzystają z innej technologii niż natywna.

Aplikacje cross-platformowe są bardzo często szybszym i mniej kosztownym rozwiązaniem, niż aplikacja natywna. Decydując się na stworzenie aplikacji mobilnej warto jednak znać różnice między tymi rozwiązaniami - dlatego możesz przeczytać więcej na naszym blogu o różnicach pomiędzy technologią natywną a cross-platformową.

Kiedy warto stworzyć aplikacje w technologii natywnej?

Aplikacje natywne są dobrym rozwiązaniem, gdy zależy nam na możliwie najlepszej wydajności aplikacji na danym urządzeniu. Ze względu na mniejsze rozmiary, dostępie do wszystkich modułów urządzenia, czy też lepszą optymalizacje i prędkość działania, niż w innych rozwiązaniach technologie natywne przodują w aplikacjach, które muszą maksymalnie wykorzystać możliwości urządzenia.

Przykładem aplikacji mobilnych, w których warto wykorzystać technologie natywne mogą być:

  • Aplikacje healthcare: Często w aplikacjach healthcare funkcjonalności powinny być zoptymalizowane najlepiej, jak to tylko możliwe, dlatego te minimalne różnice w prędkości aplikacji mogą mieć ogromne znaczenie. Przykładową dodatkową zaletą wykorzystania natywnej technologii w przypadku takich aplikacji będzie łatwiejsza integracja ze smartwatchami monituroujacymi parametry życiowe lub zewnętrznymi urządzeniami wykorzystując Bluetooth – na przykład miernikami ciśnienia.

  • Aplikacje wykorzystujące Augmented Reality (AR): Te aplikacje wykorzystują bardzo dużo mocy obliczeniowej telefonów i działają zdecydowanie lepiej, gdy stworzy się je w technologiach natywnych. Po części zawdzięczają to natywnym API oferowanym developerom w Swift czy Kotlinie.

OIP.jpg Zdjęcie ikea.com

  • Gry mobilne: W tym przypadku sytuacja jest bardzo podobna do aplikacji wykorzystujących AR: wolne działanie czy wręcz zacinanie się gier mobilnych jest najczęstszym powodem frustracji graczy. Bardzo często gry mobilne wymagają dużej ilości zasobów urządzenia i optymalizacja ich działania jest krytyczna z biznesowego punktu widzenia.

Czym są aplikacje cross-platformowe i kiedy mogą być odpowiednim rozwiązaniem?

Aplikacje cross-platformowe są aplikacjami mobilnymi, które podobnie jak aplikacje natywne mogą być uruchomione na kilku platformach – np. Android i iOS. Główną cechą technologii cross-platformowej jest to, że stworzony kod źródłowy naszej aplikacji działa na kilku platformach jednocześnie z niedużymi zmianami w kodzie pomiędzy różnymi systemami – dzięki czemu do stworzenia aplikacji wystarczy jeden zespół developerów, specjalizujący się w jednej, konkretnej technologii. Najczęściej używanymi technologiami są tutaj React Native lub Flutter.

W praktyce technologie cross-platformowe pozwalają na znaczące zmniejszenie kosztów developmentu i w tym samym budżecie pozwala na dodanie większej ilości funkcjonalności do aplikacji.

Najbardziej istotnymi cechami cross-platformowego rozwiązania są:

  • Krótki time-to-market: ze względu na wykorzystanie frameworków cross-platformowych aplikację tworzy się o wiele krócej, niż w technologiach natywnych.

  • Niższe koszty: tam, gdzie w technologii natywnej trzeba było stworzyć dwie osobne aplikacje, tak w rozwiązaniach cross-platformowych są to tak naprawdę znacząco mniejsze zmiany w kodzie do każdego systemu. Stworzenie tej samej aplikacji natywnie wymaga albo więcej czasu, albo więcej pieniędzy – w codziennej praktyce aplikację na osobną platformę tworzy osobny zespół developerów. W rozwiązaniu cross-platformowym tego problemu nie ma.

  • Spójność w nawigacji interfejsu pomiędzy platformami: Ze względu na różnice systemowe, User Experience może różnić się podczas korzystania z aplikacji. W technologii natywnej często skutkuje to dodatkowymi godzinami pracy designera. Cross-platformowe frameworki są pewnego rodzaju rozwiązaniem standaryzującym elementy UI – nie oznacza to jednak, że ten problem nie występuje zupełnie. Różnice systemowe pomiędzy iOS a Androidem powodują, że UX/UI designerzy muszą wziąć pod uwagę pewne ograniczenia oraz „zasady’ określonego systemu.

Kiedy technologia cross-platformowa może być dobrym rozwiązaniem?

W większości projektów podejście cross-platformowe w zupełności wystarczy. Na rynku aplikacji mobilnych istnieje wiele aplikacji, które zdecydowanie mogłyby być stworzone w cross-platformowych technologiach, takich jak React Native. Podejście cross-platformowe świetnie spisze się w przypadku start-upów i młodych przedsiębiorstw z ograniczonym budżetem i czasem.

Czym jest PWA?

Progresywna aplikacja webowa na pierwszy rzut oka dla przeciętnego użytkownika wygląda po prostu jak aplikacja mobilna. Aplikacje PWA mogą na przykład działać w trybie offline, wysyłać powiadomienia push, czy korzystać z wielu funkcji telefonu, jak np. Bluetooth czy GPS.

Bardzo dużą zaletą aplikacji typu PWA jest możliwość dostosowania UI i opracowania UX w sposób, który sprawi wrażenie korzystania z dedykowanej aplikacji mobilnej lub desktopowej (PWA nie jest wykorzystywane tylko w aplikacjach na urządzenia mobilne!).

Instalacja PWA jest bardzo prosta - wystarczy kliknąć w przycisk interaktywnego pop-upu i dodać aplikację do ekranu głównego telefonu. PWA instaluje się bez wykorzystania App Store czy Google Play Store, co czasami może być zarówno zaletą, jak i wadą.

warsawplayerspopup.png Przykład pop-upa PWA w jednej z przygotowanych przez nas aplikacji dla Warsaw Players

Kiedy warto rozważyć stworzenie PWA?

PWA tak jak i podejście cross-platformowe jest idealne dla firm chcących przenieść istniejącą aplikację webową na urządzenie mobilne niskim kosztem. PWA może być idealnym rozwiązaniem, jeśli potrzebujesz w pełni responsywnej, uniwersalnej aplikacji do komunikacji z klientami. Aplikacje PWA mają ogromne możliwości i istotne ograniczenia – o których możesz więcej przeczytać w naszym innym artykule.

Podsumowanie

Podstawową kwestią, którą należy omówić przed rozpoczęciem prac nad aplikacją mobilną, jest lista jej funkcjonalności. Stworzenie takiej listy zdecydowanie ułatwi wybór rozwiązania technologicznego, którego użyjemy do stworzenia aplikacji. Jeśli aplikacja, którą chcesz stworzyć nie posiada skomplikowanych funkcjonalności wymagających konkretnych integracji, tworzenie aplikacji natywnej bez innych, konkretnych argumentów może tylko niepotrzebnie zwiększyć koszty projektu.

Porównanie PWA, technologii cross-platformowych i technologii natywnych można zaprezentować w następujący sposób:

Aplikacja PWA:

  • Wygląda jak aplikacja mobilna.

  • Wykorzystuje kod istniejącej aplikacji webowej.

  • Nie musi być weryfikowana i spełniać wymogów App Store i Google Play Store.

  • Niskie koszty stworzenia aplikacji poprzez tworzenie jej jednym kodem źródłowym.

  • Działa w trybie offline.

  • Małe wymagania sprzętowe.

Cross-platform:

  • Poprzez wykorzystanie frameworków takich jak React Native jeden kod działa na obu systemach.

  • Niższe koszty stworzenia w porównaniu do aplikacji natywnej, jednak większe niż koszt wykonania PWA.

  • Zachowanie spójności w UX/UI jest zdecydowanie prostsze i tańsze, niż w technologiach natywnych.

  • Dedykowana aplikacja mobilna będzie wydajniejsza i pozwala na bardziej skomplikowane funkcjonalności, niż PWA.

Natywna aplikacja mobilna:

  • Brak ograniczeń w tworzeniu funkcjonalności.

  • Aplikacje natywne zazwyczaj są bardzo szybkie i łatwiejsze w optymalizacji, niż inne rozwiązania.

  • Pozwala w pełni wykorzystać możliwości urządzenia, co stanowi kluczowy argument w aplikacjach np. wykorzystujących AR.

Jeśli dalej nie jesteś pewien, które rozwiązanie będzie dla Ciebie odpowiednie – z chęcią pomożemy Ci w decyzji. Każdy projekt aplikacji mobilnej zaczynamy od weryfikacji możliwości każdej z powyższych technologii i wspólnie określimy, które rozwiązanie będzie dla Ciebie najlepsze.

Michał Kłak

Autor

Michał Kłak

Współzałożyciel i dyrektor operacyjny iMakeable.

Kategorie
Najnowsze posty
Tagi