Technologii tworzenia aplikacji mobilnych jest naprawdę wiele. Co ciekawe, nawet specjaliści z branży IT nie zawsze mogą wskazać na najważniejsze różnice między nimi. To powoduje, że wybór optymalnego rozwiązania dla danego projektu bywa niezwykle trudny. 

Czym są aplikacje mobilne? Odpowiedź na to pytanie wcale nie jest taka oczywista. My stawiamy tezę, że aplikacją mobilną jest wszystko to, co możemy pobrać ze sklepu App Store i Google Play. Do tego zestawienia wchodzą więc technologie natywne (Android, iOS) oraz Flutter i React Native jako frameworki wieloplatformowe (co oznacza, że na obie platformy pisze się “jeden kod”). 

A co z całą resztą, czyli np. RWD, AMP, PWA? Te technologie można porównać do “www na sterydach”. Dlaczego?

Strony responsywne to nie aplikacje

RWD (responsive web design) to po prostu technika projektowania strony www, tak aby była wygodna w użytkowaniu na różnych urządzeniach, w tym mobilnych. 

Podobnie AMP (accelerated mobile pages), które są stronami responsywnymi, zoptymalizowanymi pod możliwie najszybsze ładowanie na komórce, nawet przy słabym łączu. Dla większej szybkości trzymane są jako “kopie” (cache) na zewnętrznej infrastrukturze, np. Google. 

Przy PWA zatrzymajmy się na nieco dłużej.

PWA – w jaki sposób “udaje” aplikację mobilną?

PWA (progressive web app) to witryna internetowa, która najbardziej naśladuje aplikację natywną. Najczęściej podawanym przykładem jest tu twitter.com. 

PWA dodane na pulpit telefonu mogą odpalać się w trybie pełnoekranowym, a uruchomiona w ten sposób aplikacja ma własny wątek w zasobach systemowych urządzenia.

Najprostsza wersja PWA to zwykła witryna wyposażona w wymagane rozszerzenia. Jeśli aplikacja funkcjonuje jako Single Page Application (np. stworzona w React, Vue), wygodą użytkowania dorównuje tym natywnym, a dzięki komunikacji przez API może być niezależna też od backendu.

Zalety PWA:

  • Optymalizacja szybkości – service workery zapewniają komfortowy cache kluczowych danych, przyspieszając jednocześnie serwis. To wygoda użytkownika, ale też lepsze wyniki SEO (szybkość witryny jest jednym z ważniejszych czynników dla pozycjonowania). 
  • Obsługa trybu offline – odpowiednio przygotowana aplikacja będzie mogła działać bez dostępu do sieci, a wyniki swojej pracy prześle po przywróceniu połączenia.
  • Brak konieczności aktualizacji ze strony użytkownika – zawsze korzysta on z najświeższej wersji aplikacji.
  • Możliwość używania ulubionych narzędzi analitycznych – PWA to witryna internetowa, więc możliwe jest śledzenie zdarzeń, np. przez Google Analytics. 
  • Multiplatformowość – aplikacja tworzona jest pod wszystkie systemy operacyjne jednocześnie. Może też pracować jako aplikacja desktop, jeśli na komputerze znajduje się Chrome. 

W jakich przypadkach rozważyć PWA? Przede wszystkim wszędzie tam, gdzie aplikacja nie wymaga użycia funkcji dostępnych tylko dla aplikacji natywnych (np. powiadomień push). Co ważne, sukcesywnie powstają kolejne Web APIs, które rozszerzają możliwości PWA, np. obsługa wibracji, bluetooth, webrtc (połączenia wideo), dostęp do stanu baterii czy połączenia  internetowego. 

Dzięki takim możliwościom aplikacja może reagować i współgrać ze swoim otoczeniem. Dla przykładu – pokazać informację o kończącej się baterii czy słabym połączeniu internetowym. W bardziej zaawansowanych przypadkach może sterować urządzeniami bluetooth czy służyć do komunikacji wideo.

Podstawową wadą PWA jest natomiast to, że iOS nadal słabo radzi sobie z service-workerami.

Czego nie dadzą ci “www na sterydach”, a co dostaniesz dzięki aplikacji natywnej?

Jak widać, opisane wyżej technologie mają swoje ograniczenia i nie zapewniają nam wszystkich funkcji. Jakie są więc najważniejsze zalety aplikacji natywnych? 

  • Ogólna płynność działania – odczuwalna głównie dla końcowego użytkownika.
  • Pełny dostęp do zasobów telefonu – możliwość wykorzystania aparatu, mikrofonu, NFC.
  • Możliwa integracja z usługami systemowymi i zainstalowanymi aplikacjami – pozwala, np. na korzystanie z wbudowanych w system mechanizmów płatności, dodawanie i odczytywanie zdjęć z pamięci telefonu, udostępnianie plików między aplikacjami.
  • Łączność bluetooth – zapewnia obsługę urządzeń “smart” (medycznych, fitness, multimediów itp.).
  • Wygoda instalacji – użytkownicy są przyzwyczajeni do pobierania aplikacji ze sklepów, mają zaufanie do tych platform.
  • Widgety – przypięte do głównego ekranu telefonu umożliwiają podgląd danych bez uruchamiania aplikacji lub zapewniają szybszy dostęp do konkretnych jej funkcji.
  • Dojrzałość technologii – jest to znacznie bardziej “dojrzała” technologia niż PWA, co dla wielu firm jest istotnym kryterium wyboru.

Czas decyzji – co warto wziąć pod uwagę? 

Wybór odpowiedniej technologii odbywa się po przeanalizowaniu założeń danego projektu i celu, jaki ma on realizować. Nie zawsze musi być bowiem tak, że potrzebujemy aplikacji natywnej. Oto kilka konkretnych przykładów dla zobrazowania problemu: 

  • Jeśli potrzebujemy czegoś, co spełni funkcje marketingowo-informacyjne, a ponadto będzie służyło SEO, powinniśmy skupić się na stworzeniu solidnej witryny RWD i pomyśleć nad dodaniem mechanizmu AMP dla szybkiego ładowania treści na smartfonach.

  • Jeśli nasz projekt spełnia kryteria aplikacji mobilnej i chcemy go zwalidować przy ograniczonym budżecie, możemy pomyśleć nad przygotowaniem MVP w technologii Flutter. Dzięki temu w krótkim czasie będziemy mieć aplikację na obie platformy.
  • Jeśli jesteśmy gotowi stworzyć bezkompromisową aplikację mobilną, gdzie priorytetem jest skalowalność, możliwość ciągłego rozwoju i rozbudowy, wybierzmy aplikacje natywne pisane osobno pod każdą z platform. 
  • Jeśli mamy do wdrożenia system dużej skali, np. do wewnętrznego użytku w firmie, PWA może być dobrym wyjściem. Sprawdzi się on w sytuacji, gdy system ma setki różnych modułów, dla których stworzenie technologii natywnej wiązałoby się z ogromnymi kosztami.

W Autentice nasi klienci nie muszą jednak podejmować tego typu decyzji samodzielnie. Nie wiesz, która technologia będzie odpowiednia dla Twojego projektu? Skontaktuj się z nami!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *