android_figurki

Progressive Web Apps – nowe znaczenie słowa „aplikacja”

3 minuty czytania
Komentarze

Cykl wydawniczy przeglądarki Chrome z całą pewnością nie należy do najbardziej spektakularnych. Często zmuszeni jesteśmy zachwycać się tak przełomowymi zmianami, jak zapowiedź dostępności ciemnego motywu, temat ten zresztą poruszałem w jednym z poprzednich tekstów. Ale ostatni Chrome na Androida to prawdziwy przełom, z czego chyba nie wszyscy zdają sobie sprawę. Implementacja Trusted Web Activity w Chrome 72 dla Androida otwiera bowiem drogę do dostępności w Google Play oprogramowania Progressive Web Apps.

Progressive Web Apps – farbowane lisy mogą zastąpić aplikacje

W rozwoju oprogramowania, jak we wszystkich przejawach ludzkiej działalności, mamy do czynienia z trendami. W ciągu ostatnich lat szczególnie rozpowszechniła się moda na porzucanie rozwoju natywnego oprogramowania na rzecz aplikacji webowych, uruchamianych w ten czy inny sposób lokalnie. Dlaczego tak się dzieje? Przede wszystkim dlatego, że jest to łatwe. „Aplikacja” to najczęściej strona internetowa wykorzystująca JavaScript. Dzięki popularnemu frameworkowi Electron można ją „opakować” w systemowe okno tak, aby udawała natywnie wykonywany kod.

progressivewebapps
Najprostsze PWA wyświetlające „Hello World!”, niemal sam HTML.

Tak naprawdę nie ma z nim jednak wiele wspólnego. Dla przeciętnego użytkownika najlepiej widoczne jest to w menedżerze zadań lub jego odpowiednikach. Aplikacje przygotowywane w Electronie to  kolejne instancje Chrome’a, wszak w jakimś środowisku te wszystkie javascriptowe instrukcje muszą być wykonywane. A jak wszyscy wiemy, Chrome i aplikacje webowe to duet łasy na RAM. W rezultacie desktopowe systemy operacyjne (sprawa nie dotyczy bowiem tylko Windowsa) zalały „niewielkie” electronowe programiki, które potrafią pożerać całe gigabajty RAM-u. Przykładem może być klient Slacka czy Visual Studio Code.

Progressive Web Apps – czym są i o co chodzi?

Co to ma wspólnego ze wspomnianym Progressive Web Apps? Cóż, PWA są swojego rodzaju realizacją electronowych założeń na Androidzie. Znów mamy bowiem do czynienia ze stronami internetowymi, które mają dostarczać wrażeń porównywalnych z oprogramowaniem natywnym, ale nimi nie są. Przekonamy się o tym wszyscy już niebawem, gdyż swoją aplikację PWA może już dodać do Google Play każdy. Wszystko to za sprawą wspomnianego Trusted Web Activity – trybu Chrome, w którym przeglądarka jest pozbawiona wszelkich elementów interfejsu.

Jeśli zatem uruchomimy stronę mobilną w trybie TWA, to będzie ona wizualnie nie do odróżnienia od zwykłej aplikacji natywnej pobranej (także) z Google Play. Ale tylko wizualnie. Już w Google Play będzie można zauważyć, że taka aplikacja jest stosunkowo niewielka. Mobilna strona internetowe to przecież góra kilkaset kilobajtów. Kolejną różnicą będzie obciążenie zasobów po uruchomieniu PWA. Podobnie jak to miało miejsce z frameworkiem Electron na pulpitach, będziemy mieć bowiem do czynienia z Chromem, HTML-em, CSS-em i JavaScriptem.

PWA w Google Play – będzie z tego bieda

Dla starszych urządzeń uruchomienie kilku takich „aplikacji” może być sporym obciążeniem. Przynajmniej do momentu adaptacji w PWA niskopoziomowego WebAssembly, każda bardziej wymagająca operacja będzie katastrofalnie wpływała na wydajność. Na ironię zakrawa fakt, że dotychczasowe eksperymenty – takich dokonywano między innymi z Google Maps i Twitterem – oznaczane były jako aplikacje „lite”, które oszczędzają zasoby. Owszem, w zasadzie nie ma mowy o instalacji, strona ma wielkość kilkuset kilobajtów, ale swoje prawdziwe oblicze progresywne aplikacje pokazują dopiero „w akcji”, a nie w postaci suchej notatki w Google Play.

progressivewebapps
W erze PWA środowiskiem programistycznym są narzędzia deweloperskie w Chrome.

Tym bardziej przykre może mieć konsekwencje możliwość publikowanie Progressive Web Apps w sklepie Google Play, a to właśnie dzieje się na naszych oczach za sprawą dostępności trybu Trusted Web Activity w Chrome 72. Zwróćmy uwagę, że konsekwencje nie są szczególnie nagłaśniane, więc przeciętny użytkownik nie będzie miał zielonego pojęcia, że nie instaluje już APK, lecz WebAPK. Nie będzie też widział, skąd nagły spadek wydajności w jego leciwym urządzeniu. Google nie przedsięwzięło na razie żadnych środków, by go w tym uświadomić czy choćby jakkolwiek oznaczać PWA w Google Play.

Motyw