Aplikacje PWA vs aplikacje natywne – porównanie technologii

Aplikacja PWA czy aplikacje Natywne?

Podczas tworzenia aplikacji mobilnej pojawia się zawsze wiele pytań jaką technologię wybrać? Istnieją różne możliwości takie jak aplikacja PWA, aplikacje cross-platformowe czy aplikacje natywne. Dzisiaj, wytłumaczymy różnice między tymi technologiami oraz podpowiemy w jakiej sytuacji powinna zostać wybrana dana technologia.

Aplikacja PWA – co to jest? Progressive Web App – Aplikacja progresywna

Przede wszystkim wytłumaczmy dlaczego aplikacja jest nazywana progresywną – taki rodzaj aplikacji świetnie dostosowuje się do każdego rodzaju urządzenia dzięki czemu User Experience jest świetnie dostosowany do każdego rodzaju urządzenia. PWA jest bardzo dobrze przystosowana do urządzeń mobilnych. Tego typu aplikacje mogą korzystać z różnych funkcji urządzeń mobilnych jednak występują tutaj pewne ograniczenia. Tego typu aplikacje odpalane są z poziomu przeglądarki na urządzeniu (np. Chrome, Firefox). Oczywiście na urządzeniu jest utworzony skrót do aplikacji, dzięki czemu użytkownik ma wrażenie takiej samo jak podczas używania aplikacji napisanej w technologiach hybrydowych.

Aplikacja PWA – Zalety

  • PWA pozwala zaoszczędzić pieniądze – Pisząc aplikację PWA wystarczy jeden kod żeby aplikacja działała na platformach Android, iOS oraz web. Jeśli aplikacja jest napisana natywnie wówczas klient musi stworzyć całkowicie osobno aplikację Android oraz iOS.
  • Aplikacje progresywne nie zajmują miejsca na urządzeniu użytkownika. Ikona na ekranie telefonu jest tylko skrótem do aplikacji internetowej
  • Użytkownicy nie muszą instalować aplikacji ze sklepów AppStore i Google Play. Dostęp do aplikacji jest przez Link URL.
  • Twórca aplikacji nie musi wrzucać aplikacji do sklepów. Nie jest zatem wymagana również weryfikacja tych aplikacji w sklepach. Podobniej jest z ewentualnymi aktualizacjami. W przypadku PWA może być ona wgrana natychmiast.

Aplikacja PWA – Wady

  • Aplikacje PWA nie są wspierane przez wszystkie przeglądarki internetowe
  • Mimo coraz większej popularności, aplikacje tego typu są gorzej wspierane na urządzeniach Apple niż aplikacje natywne
  • Dostęp do kamery urządzenia – Na niektórych przeglądarkach jest problem z dostępem do kamery urządzenia i nie będzie możliwe skanowanie kodów bezpośrednio w aplikacji
  • Aplikacje PWA nie są publikowane w sklepach i przez to ich marketing jest utrudniony. Posiadane aplikacji w markecie zwiększa zaufanie i użytkownicy są bardziej skłonni pobierać taką aplikację.
  • Progressive Web Apps mocno wyczerpują baterię.
  • Notyfikacje PUSH – To jest największa wada PWA. Na ten moment notyfikacje PUSH nie są obsługiwane na żadnej przeglądarce mobilnej iOS
  • Ogólnie PWA jest mocno ograniczone jeśli chodzi o korzystanie z modułów telefonów. Jeśli w przyszłości chcielibyście dodawać w aplikacji funkcje korzystające z GPS urządzenia czy modułu wibracji nie będzie działało to poprawnie na każdej przeglądarce

Aplikacje natywne

W przeciwieństwie do aplikacji PWA, aplikacje natywne są pisane pod dedykowaną platformę. W takim przypadku całkowicie osobno muszą zostać stworzone aplikacje na platformę iOS i Android. Aplikacje natywne są najszybsze oraz najlepiej przystosowane do działania na urządzeniach mobilnych. Pozwalają wykorzystać każdą możliwą funkcjonalność oferowaną przez system operacyjny. Są też zdecydowanie droższe w stworzeniu ponieważ kod musi być pisany pod daną platformę.

Jakie są plusy aplikacji natywnych?

  • Szybkość aplikacji mobilnych jest największa w przypadku aplikacji mobilnych
  • User Experience w przypadku aplikacji natywnych jest najlepsze – intuicyjne komponenty w layoutach Android oraz iOS, zawsze płynnie działające animacje to ogromne zalety tego rozwiązania.
  • Dostęp do wszystkich modułów urządzenia – Możliwość swobodnego korzystania z modułów jak GPS, NFC, Kamery, Bluetooth, żyroskopu czy dostęp do kontaktów w aplikacji. Dzięki temu tworząc aplikacje natywną nie jesteśmy w żadnym stopniu ograniczeni w tym zakresie.
  • Wysokie bezpieczeństwo aplikacji mobilnych oraz możliwość zastosowania najlepszych zabezpieczeń w aplikacjach mobilnych

Jakie są minusy aplikacji natywnych?

  • Aplikacje natywne zajmują pamięć telefonu oraz zużywają pamięć RAM
  • Wyższe koszty stworzenia aplikacji natywnych. Wynika to z faktu, że aplikacje na platformy Android i iOS są tworzone w innych technologiach. Każda z aplikacji musi być pisana od podstaw.
  • Długi czas wypuszczania aplikacji oraz wprowadzania aktualizacji. Za każdym razem kiedy do sklepu Google Play lub AppStore ma być wypuszczona nowa wersja aplikacji, trzeba przejść pełny proces akceptacji.

Aplikacje Cross-platform

Istnieje również rozwiązanie polegające na napisaniu aplikacji cross-platformowej. Są to takie technologie jak Flutter czy React Native. Technologie te wymuszą napisanie części części wspólnej kodu dla platformy Android i iOS, a części osobno pod te dwie platformy. W rezultacie jest to szybsze rozwiązanie niż pisanie obu aplikacji na obie platformy.

Tutaj też są jednak pewne minusy. Aplikacja jest na pewno szybsza i tańsza w stworzeniu niż aplikacja natywna. Daje większe możliwości niż PWA w kwestii modułów, jednak są to mniej popularne technologie niż te używane do tworzenia aplikacji natywnych.

Pod kątem wydajności aplikacje cross-platform są trochę mniej wydajne niż aplikacje natywne. Jak użytkownik będzie miał słabsze urządzenie lub będzie ono mocno obciążone wówczas taka aplikacja może działać mniej płynnie przez co nastąpi pogorszenie User Experience.

Podsumowanie

Na ten moment nakładane są duże ograniczenia w technologii PWA i istnieje ryzyko związane z tworzeniem takiego projektu. Brak możliwości obsługi notyfikacji PUSH jest sporym ograniczeniem gdzie w dzisiejszych czasach wiele aplikacji mobilnych posiada taką funkcjonalność. PWA świetnie nadało by się do aplikacji typu porównywarka, czy jako zamiennik typowej aplikacji mobilnej dla sklepu internetowego.

Aplikacja Natywna zapewnia najwięcej możliwości. Aplikacje pisane w języku Kotlin (w przypadku Android’a) oraz w języku Swift (w przypadku iOS) są zawsze wspierane w pierwszej kolejności przez twórców obu systemów operacyjnych. Aplikacje są również najbardziej wydajne. Dodatkowo jeśli aplikacja ma korzystać z kontaktów w telefonie, danych biometrycznych lub ma być korzystać z rozszerzonej rzeczywistości (Augmented Reality) to jest to jedyny słuszny wybór. Na ten moment jest to też najpopularniejszy sposób tworzenia aplikacji.