Aplikacje mobilne PWA - czym właściwie są?

Aplikacje PWA (Progressive Web Application) to specyficzny rodzaj aplikacji na urządzenia mobilne związany z technologiami webowymi. W tym wpisie postaram się przybliżyć ich temat od strony praktycznej.

Początkowo rynek aplikacji mobilnych był zdominowany przez aplikacje natywne - czyli takie, które są tworzone w języku programowania specyficznym dla danej platformy (np. w Javie dla Androida czy Objective C dla iOS). Tego typu programy korzystały ze wszystkich możliwości danej platformy, były również bardzo wydajne (chodź to nie zawsze). Z biznesowego punktu widzenia mają one dużą ilość wad - przede wszystkim wysoki jest ich koszt wytworzenia, który wymagał tworzenia osobnego kodu aplikacji dla każdej platformy. Często również interfejs użytkownika (GUI) różniło się pomiędzy platformami, co jest istotną wadą dla użytkownika. Aplikacje natywne również w przypadku zmian musiały być pierw aktualizowane przez twórców w sklepach, a następnie te aktualizację były pobierane przez użytkowników na swoje urządzenia. Powodowało to, że nie wszyscy użytkownicy korzystali z najnowszej wersji oprogramowania.

Te wady rozwiązały aplikacje hybrydowe (tworzone za pomocą np. silnika Apache Cordova, czy później wielu różnych frameworków takich jak Ionic). Tutaj już sam kod aplikacji był tworzony w jednym, wspólnym języku programowania - najczęściej Javascript, TypeScript, znanym z technologii webowych). Interfejs użytkownika był tworzony w bardzo popularnym HTML oraz CSS. Silniki aplikacji hybrydowych umożliwiały również korzystanie z wielu natywnych funkcji urządzeń mobilnych takich jak dostęp do GPS, aparatu, czy innych czujników które są zamontowane w urządzeniu mobilnym. Nie są one jednak tak wydajne jak aplikacje natywne, jednak z punktu widzenia kosztów wytworzenia stanowią całkiem sensowną dla nich alternatywę.


Po co w takim razie jest PWA i co to właściwie jest?

W dużym skrócie aplikacje typu PWA to nic innego jak aplikacje webowe wyświetlone za pomocą wbudowanej przeglądarki w telefonie. Są one wyświetlane w taki sposób, aby z poziomu użytkownika nie było widać różnic pomiędzy aplikacją "normalną", a "webową", nie znajdziemy w nich paska z adresem URL aplikacji czy ikonki do odświeżania. Z punktu widzenia programistycznego aplikację tworzymy w jednej technologii webowej, tak samo jak budujemy interfejs użytkownika w technologiach które programiści webowi bardzo dobrze znają. Aplikacja wygląda i zachowuje się tak samo na różnych platformach oraz na różnych urządzeniach. Umożliwia również dostęp do wybranych natywnych funkcji urządzenia takich jak pozycja GPS czy aparat użytkownika. Ponieważ aplikacja serwuje treści, które są zlokalizowane na serwerze, użytkownik posiada zawsze aktualną wersję oprogramowania, takiej aplikacji nie musi nigdy aktualizować. No dobrze, skoro mamy zalety to jakie są ich wady? Przede wszystkim aplikacje PWA nie działają bez dostępu do Internetu (niby trochę działają, ale o tym nieco poniżej), więc użytkownik musi być stale podłączony do sieci, kolejnym ograniczeniem jest lista obsługiwanych natywnych funkcji urządzenia. Nie mamy tutaj dostępu do wszystkich czujników czy elementu sprzętu jak w aplikacjach natywnych, a tylko do wybranych elementów.


Obsługa natywnych funkcji urządzenia w aplikacji PWA

Jak już wcześniej wspomniałem aplikacje PWA działają za pomocą przeglądarki wbudowanej w system. To od niej, standardów webowych i uprawnień jakie posiada aplikacja może posiadać dostępy do wybranych natywnych funkcji urządzenia.

Dostępne natywne funkcjonalności w aplikacji PWA:



  • lokalizacja urządzenia za pomocą GPS

  • możliwość wykonania zdjęcia za pomocą wbudowanego aparatu i wysłania go do aplikacji

  • możliwość nagrania wideo i wysłania go do aplikacji

  • możliwość wysłania powiadomienia na urządzenia

  • możliwość zasygnalizowania jakieś akcji użytkownikowi za pomocą wibracji

  • odczyt położenia (orientacji) urządzenia


Lista ta cały czas rośnie, współczesne przeglądarki w których działają aplikacje PWA stale rozbudowują swoje funkcjonalności. Bardzo dobrą stroną gdzie można sprawdzić swoje urządzenie mobilne jakie funkcje natywne obsługuje jest https://whatwebcando.today/

Jednak aplikacje PWA zawsze będą posiadały pewne ograniczenia co do sprzętu używanego w telefonie, chociażby ze względu na techniczny sposób ich uruchamiania.
Serwowanie treści użytkownikowi

Aplikacje mobilne PWA serwują treści użytkownikowi praktycznie jak zwykłe aplikacje webowe, mogą więc wyświetlać treści w sposób "standardowej" strony HTML, mogą również korzystać z różnych technologii front-endowych takich jak ReactJS, Angular czy Vue.js - wszystko zależy od wymagań jakie są stawiane aplikacji. Użytkownicy korzystający na co dzień z aplikacji webowych są bardzo przyzwyczajeni do ich interfejsów użytkownika i sposobu działania, aplikacja PWA działa bardzo podobnie przez co zaangażowanie użytkowników którzy sprawnie się w niej poruszają jest większe.


Aplikacje PWA z technicznego punktu widzenia

Nie każda strona internetowa będzie działała jako aplikacja PWA. Takie aplikacje internetowe muszą spełniać szereg technicznych warunków aby nimi być:



  • aplikacja musi być dostosowana do wyświetlania na urządzeniach mobilnych (musi być responsywna), inaczej użytkownik może nie być w stanie z niej korzystać

  • treść serwowana przez serwer musi być przesyłana przez bezpieczny protokół SSL (https)

  • aplikacja musi posiadać specjalnego workera, który odpowiada za cachowanie danych (dzięki temu użytkownik oszczędza transfer, a aplikacja działa szybciej) oraz może odpowiadać za pobieranie treści w tle działania aplikacji

  • aplikacja musi działać bez dostępu do Internetu - tutaj chodzi o wersję minimalną, ponieważ aplikacje PWA opierają się na treści online, chodzi o to aby użytkownikowi zaserwować odpowiednią stronę z komunikatem o braku dostępu do sieci

  • ostatecznie aplikacja musi posiadać odpowiedni plik z manifestem (w formacie JSON), w którym będą zawarte podstawowe informacje o aplikacji takie jak jej adres początkowy, nazwa czy zestaw ikonek startowych w różnych rozmiarach


 


Instalowanie aplikacji PWA na urządzeniach mobilnych

Proces instalacji jest bardzo prosty, co więcej nie wymaga on ściągania (często dużej) aplikacji ze sklepu. Aplikacje PWA mogą być instalowane przez sklep, jak zwykłe natywne programy, jednak możemy również je instalować z pominięciem sklepów. W systemach Android po wejściu przez przeglądarkę Chrome pod adres aplikacji zostaniemy zapytani czy chcemy ją zainstalować na pulpicie, natomiast w systemach iOS należy po wejściu przez przeglądarkę na adres aplikacji samemu utworzyć skrót na pulpicie.


Przyszłość aplikacji PWA

Biorąc pod uwagę lawinowo rosnące znaczenie aplikacji online w świecie możemy również spodziewać się popularyzacji tej technologii. Już obecnie istnieje bardzo wiele aplikacji stworzonych w tej technologii takich jak Starbucks, Uber, Printerest, Forbes czy Tinder. Wiele z tych firm chwali się, że przesiadka na PWA przyspieszyła działanie aplikacji oraz zwiększyła zainteresowanie swoich użytkowników.


PDA IT Solutions specjalizuje się w tworzeniu aplikacji webowych, w tym również aplikacji mobilnych w technologii PWA. Zapraszamy do współpracy z nami przy kolejnym projekcie.

LinkedIn

O autorze

Kuba Kwiatkowski
CTO - Czuwa nad tym aby w projektach była wykorzystywana optymalna technologia.