Progressive Web Apps i moje progresywne myślenie
Tworzę różnego rodzaju PWA – aplikacje z użyciem technologii webowych od trzech lat. Od początku byłem ich fanem ze względu na to, że to jedyne mobilne rozwiązanie, które było w zasięgu moich możliwości. Żadnych PWA mobilnie jednak sam nie używałem. Wstyd mi się do tego przyznać, ale myślę, że mogę to zracjonalizować. Here we go.
Dlaczego nie używałem żadnych PWA na swoim telefonie?
Myślę, że są ku temu trzy powody i mam nadzieję, że każdy z nich w tym roku odejdzie dla mnie w zapomnienie:
Powód 1. Mój telefon to iPhone (Jeszcze. Niestety)
Apple bardzo skutecznie zniechęca do używania PWA, a także do ich tworzenia.
Używanie. Do dzisiaj nie mamy promptów w Safari o możliwości "zainstalowania aplikacji" webowej, gdy znajdujemy się na jej stronie. Nawet gdy ktoś wie, że aplikacje webowe można "instalować", to zrobienie tego na iPhonach jest z roku na rok chowane coraz głębiej w interfejsie Safari. Przy aplikacjach mobilnych, dla porównania, prompty o możliwości ich instalacji na stronach internetowych funkcjonują już od lat, ale to zapewne dlatego, że Apple bardzo chętnie odeśle Twoich użytkowników do swojego App Store'a. W tym ich sklepie swoją drogą, w porównaniu do Sklepu Play Googla nie możemy tak samo łatwo umieścić swoich PWA, by użytkownikom było łatwiej je znaleźć. Czepiając się słówek, używanie PWA nie jest wcale takie złe na iPhonach, ale ich discoverability (możliwość bycia odkrytymi) i "instalowanie", a co za tym idzie – również powracanie do nich, są znacznie utrudnione na tej platformie.
Tworzenie. Webkit – silnik, na którym działa Safari – nie rozwija wielu przydatnych dla PWA funkcjonalności (API), które pozwoliłyby na zespojenie przepaści między zwykłymi stronami internetowymi i natywnymi aplikacjami mobilnymi. Wspomniana już "instalowalność" aplikacji to jedno, ale poza nią napotkałem również inne problemy w swoich tworach. Były one związane chociażby z tworzeniem niestandardowego odtwarzacza wideo i jego niemożliwym do osiągnięcia trybem pełnoekranowym czy kontrolą wibracji, które miały stanowić w mojej aplikacji do medytacji i mindfulness kluczowy feedback dla użytkownika, gdy ten ma np. zamknięte oczy. Zarówno requestFullscreen()1, jak i vibrate()2 są niedostępne w mobilnym Safari. Nie tylko one3.
Ten powód odejdzie w zapomnienie, ponieważ zamierzam w tym roku przejść na Androida. Nie mogę się już tego doczekać. Od pojawienia się iOS 26 i Liquid Glass, z dnia na dzień staję się coraz większym antyfanem tych urządzeń. Poza opisanymi powyżej wadami ze świata PWA, doświadczam zbyt wielu bugów i problemów ze stabilnością systemu oraz czytelnością i przyjaznością UI, by zostać. Mamy już iOS 26.2.1, a wciąż działa to okropnie źle. Na moim iPhonie 15 najgorzej jest swoją drogą właśnie po tym updacie. Wstyd.
Powód 2. PWA to rzadkość
Klienci chcą stron internetowych, aplikacji mobilnych lub obydwu, ale nigdy sami z siebie nie powiedzą, że chcą PWA – nie wiedzą co to. Użytkownicy odwiedzają strony internetowe oraz pobierają aplikacje, ale nawet kiedy jest to PWA pobrane z Google Play Store – nie wiedzą o tym. Nikt nie wie co to jest Progressive Web App czy Web Application w nomenklaturze webkitowej.
Oczywiście hiperbolizuję. Mam nadzieję, że nikt się nie obraził, że został wrzucony do worka "nikt". Wiem, że niektórzy wiedzą. Mam jednak na myśli większość społeczeństwa, a prawda jest taka, że nie ma ona o tym zielonego pojęcia.
No okej, ale ja sam przecież też nie należę do tej większości. Wiem co to PWA. Czemu więc używam tego argumentu dla swojej racjonalizacji?
Nie pracuję długo w IT. Niebawem będą to dopiero 2 lata. Mieści się w nich jednak doświadczenie pracy dla około 10 różnych klientów. Dotychczas żaden z nich nie poruszył tematu PWA. Jednemu takie "przygotowaliśmy" – wrzucając jedną ikonkę i plik manifest na stronę, ponieważ dla jego przypadku miało to sens. Jestem jednak pewny, że nie pamiętają dzisiaj nic z naszych wyjaśnień jak działa i czym jest PWA.
Śmiem przypuszczać, że "klient też człowiek" i również mieści się nie raz we wspomnianej wcześniej "większości społeczeństwa".
Widzę też jakie są trendy w projektach komercyjnych i w rekrutacjach. Czterokrotna zmiana pracy w 2025 roku bardzo mi w tym pomogła. Kontrahenci chcą stron internetowych i aplikacji mobilnych. Nie pytają o i nie chcą niczego pomiędzy.
PWA nie są tworzone, a nawet kiedy są, to często tak, jak u tego jednego klienta – nie są celem, a dodatkiem lub wypadkową przypadku.
Powód 3. "Natywne aplikacje są lepsze"
Istnieje takie przeświadczenie, że aplikacje natywne są lepsze. Co to jednak znaczy "lepsze"? Czy więcej ludzi potrafi je programować? Czy są tańsze do dystrybucji, utrzymania i używania dla użytkowników? Czy są bardziej dostępne?
Nawet jeśli powyższe pytania są bardzo wybiórcze i ja sam na każde odpowiedziałbym "nie", to odpowiedzi zawsze zależeć będą od kontekstu i natury danego projektu.
Czasem PWA zwyczajnie nie wchodzi w grę, gdy dostęp do natywnych funkcji jest warunkiem koniecznym zaistnienia jakiejś aplikacji. Nie każda aplikacja jednak tego potrzebuje.
W moim przypadku, choć mam na co narzekać (patrz Powód 1.), PWA były do tej pory zawsze wystarczające dla moich celów. Ponad to, były też w zasięgu moich możliwości, wiedzy i umiejętności. Ostatecznie nawet wibracje na iOS da się hackować4.
Nawet jeśli natywne aplikacje na więcej pozwalają, to nie zawsze to "więcej" jest potrzebne.
A kiedy nie jest, to decyzja przynajmniej dla mnie staje się banalnie prosta. PWA z moimi obecnymi umiejętnościami i wiedzą to no-brainer.
Uwaga! Chcę, by to wybrzmiało. Przeświadczenie, o którym piszę jako powód 3, sam miałem jeszcze na początku tego roku. Widać to wyraźnie w moim planie na rok 20265.
Napisałem w tym poście tylko o tym, że robiłem webowe aplikacje, których nigdy później nie używałem. To prawda. PWA jednak nigdy nie były tego powodem. Projekty moich aplikacji były wadliwe u podstaw.
Nie wiem czemu tak się dzieje, ale co jakiś czas daję się przekonać (nawet nie wiem komu), że powinienem zacząć tworzyć natywne aplikacje mobilne, bo inaczej nie osiągnę żadnego sukcesu. To zapewne jakiś mechanizm obronny, sprawiający, że nie chcąc widzieć w sobie problemu, upatruję go na zewnątrz. Według tego mechanizmu "to nie moje aplikacje są wadliwe, to PWA". Cóż…
Ten oraz poprzedni powód odejdą w zapomnienie, ponieważ nastąpiła we mnie przemiana, a tym samym również zmiana moich planów5. Nie chcę by przedstawiony powyżej mechanizm mną kierował. Chcę mieć większą kontrolę i w tym przypadku podejmować bardziej racjonalne decyzje. Na ten moment olewam więc uczenie się Expo. Stworzę aplikację webową, kolejne PWA, ponieważ zgodnie z moją wizją ze stycznia, funkcjonalność natywna nie będzie mi potrzebna. Dodatkowo na nowo polubiłem PWA, używając ich więcej, ucząc się na ich temat i rozumiejąc je lepiej. Ostatecznie, niebawem mój iPhone też nie będzie już niczym poza duchem przeszłości. Nie mam więc żadnego powodu, by porzucać web. Zostaję.
I'm glad.
Polecane przeze mnie PWA
Wspomniałem, że używam ostatnio więcej PWA i to prawda. Zacząłem się im bardziej przyglądać i aktualnie dwóch używam praktycznie codziennie. To one w dużej mierze pomogły mi się "obudzić", więc chciałbym się tutaj nimi podzielić:
- Świetna gra logiczna w "zamykanie konia" – enclose.horse
- Platforma AI mojego wyboru – Kagi Assistant
- Lokalizacje schronów w Twojej okolicy – aplikacja rządowa – Gdzie się ukryć
Staram się zauważać PWA i coraz częściej z nich korzystać. Testowałem w tym roku już więcej niż te trzy podane powyżej, ale póki co tylko z tymi pozostałem na dłużej. Polecam każdą z nich.
Dziękuję za uwagę!
PS. Dziękuję też za mokradła6