Progressive Web Applications
Przez lata Sieć była nastawiona na dokumenty tekstowe z okazjonalnymi obrazkami. Ale te czasy już minęły. Teraz Sieć jest potężną platformą uruchomieniową. A to oznacza, że strony internetowe również musiały przejść ewolucję i stać się czymś więcej. Ich najnowszym wcieleniem są Progressive Web Applications (PWA) – Progresywne Aplikacje Internetowe. To termin ukuty przez Frances Berriman i Alexa Russella w okolicach roku 2015. Stworzyli oni wówczas listę cech, jakie powinna taka aplikacja posiadać:
- responsywność – żeby dostosować się do dowolnego urządzenia,
- niezależność od połączenia – żeby działać poprawnie offline,
- zachowywanie się jak aplikacja natywna,
- prezentowanie zawsze aktualnych informacji,
- bycie bezpieczną – więc wymaganie HTTPS,
- bycie “odkrywalną” – żeby osoba użytkownicza wiedziała, że ma do czynienia z PWA,
- wchodzenie w interakcje z osobą użytkowniczą – np. przy pomocy notyfikacji typu push,
- bycie instalowalną – tak jak aplikacje natywne,
- bycie linkowalną – a więc posiadanie własnego URL-a.
Te powyższe punkty przekute zostały następnie w akronim FIRE:
- F – Fast (szybka),
- I – Integrated (zintegrowana z systemem operacyjnym),
- R – Reliable (niezawodna),
- E – Engaging (komunikująca się z osobą użytkowniczą i odpowiadająca na jej potrzeby).
Te założenia posłużyły do stworzenia faktycznego technologicznego rozwiązania – aplikacji internetowych, które można “instalować” (dodać skrót do nich na pulpicie lub ekranie startowym, który otwiera aplikację w specjalnie okrojonym oknie przeglądarki) i które działają offline. Wymusiło to też zmianę podejścia do tworzenia aplikacji internetowych. Spopularyzowało się podejście offline first (czy wręcz local-only!), które zasadza się na założeniu, że połączenie w każdej chwili może, choćby na chwilę, zniknąć. Ta zmiana paradygmatu oczywiście nie byłaby możliwa bez równoczesnej zmiany technologicznej. Ta przyszła wraz z Service Workerami.
I choć PWA zaczynały skromnie, dzisiaj mają wsparcie w praktycznie każdej przeglądarce – zarówno mobilnej (od których ta rewolucja się zaczęła), jak i desktopowej. Dobrze integrują się także z systemem operacyjnym: na urządzeniach mobilnych po instalacji trafiają zazwyczaj na ekran główny, natomiast na desktopach – do doku czy wręcz funkcjonują jako widgety. Nieustannie powiększają się też możliwości PWA, które obecnie pozwalają choćby na rozpoznawanie mowy czy obsługę płatności. Na ten moment PWA to najlepsze, co może spotkać dowolną stronę internetową. Tak, nawet prostego bloga, który dzięki temu będzie możliwy do czytania offline. PWA to też najpełniejsze wykorzystanie możliwości Sieci jako platformy. I być może krok w stronę uczynienia ją _najważniejszą_ platformą. Ale na ten moment to, (nie)stety, pieśń przyszłości.
Źródła
- Aaron Gustafson, Progressive Web Apps: Where Do I Begin? by Aaron Gustafson, (data dostępu: ), w: Hooked On Code, (data dostępu: ).
- Alex Russell, Progressive Web Apps: Escaping Tabs Without Losing Our Soul, (data dostępu: ), w: Alex Russell, Infrequently Noted, (data dostępu: ).
- Christian Heilmann, Taking the P out of PWA, (data dostępu: ), w: Slideshare, (data dostępu: ).
- Offline First, (data dostępu: ).
- Paul Kinlan, The local-only web, (data dostępu: ), w: Paul Kinlan, Paul Kinlan, (data dostępu: ).
- Jim Nielsen, Offline Is Just Online With Extreme Latency, (data dostępu: ), w: Jim Nielsen, Jim Nielsen’s Blog, (data dostępu: ).
- Jeremy Wagner, Now THAT’S What I Call Service Worker!, (data dostępu: ), w: A List Apart, (data dostępu: ).
- Trys Mudford, Desktop progressive web applications, (data dostępu: ), w: Trys Mudford, Trys Mudford, (data dostępu: ).
- Jeremy Keith, Websites in the dock, (data dostępu: ), w: Jeremy Keith, Adactio, (data dostępu: ).
- Aaron Gustafson, Widgets!, (data dostępu: ), w: Aaron Gustafson, Aaron Gustafson, (data dostępu: ).
- Danny Moerkerke, What PWA Can Do Today, (data dostępu: ).
Dodatkowe materiały
- Chris Taylor, A Sprinkling of JavaScript, (data dostępu: ), w: Chris Taylor, Still Breathing, (data dostępu: ).
- Jeremy Keith, By any other name, (data dostępu: ), w: Jeremy Keith, Adactio, (data dostępu: ).
- Aral Balkan, Sites vs. Apps defined: the Documents‐to‐Applications Continuum., (data dostępu: ), w: Aral Balkan, Aral Balkan, (data dostępu: ).
- Alex Russell, Platform Adjacency Theory, (data dostępu: ), w: Alex Russell, Infrequently Noted, (data dostępu: ).
- Thomas Steiner, Web Apps on macOS Sonoma 14 Beta, (data dostępu: ), w: Thomas Steiner, blogccasion, (data dostępu: ).
- Jacob Clark, Shipping Progressive Web Apps everywhere, (data dostępu: ), w: Medium, (data dostępu: ).
- Maximiliano Firtman, PWA Cheat Sheet 2023, (data dostępu: ), w: Maximiliano Firtman, firt.dev, (data dostępu: ).
- Paul Kinlan, The off by default web, (data dostępu: ), w: Paul Kinlan, Paul Kinlan, (data dostępu: ).
- Robin Wieruch, Web Applications 101, (data dostępu: ), w: Robin Wieruch, rwieruch, (data dostępu: ).
- Kevin Basset, Why haven’t PWAs killed native apps yet?, (data dostępu: ), w: Medium, (data dostępu: ).
- Charlie Gerard, Building an aircraft radar system in JavaScript, (data dostępu: ), w: Charlie Gerard, Charlie Gerard, (data dostępu: ).
- Maye Edwin, Marta Wiśniewska i inni, pwafire.org, (data dostępu: ).
- Aaron Gustafson, Native And PWA: Choices, Not Challengers!, (data dostępu: ), w: Smashing Magazine, (data dostępu: ).
- Mitch Lenton, Designing For A Browserless Web, (data dostępu: ), w: Smashing Magazine, (data dostępu: ).
- CycleTracker - Progressive web apps, (data dostępu: ), w: MDN, (data dostępu: ).
- Gleb Khmyznikov, Publish your PWA to the Microsoft Store on Windows for FREE, (data dostępu: ), w: PWA Builder Blog, (data dostępu: ).
- Amber Case, The Appification of Everything & Why it Needs to End, (data dostępu: ), w: Medium, (data dostępu: ).
- Worker Conf, A new era of web development, Johannes Schickling WorkerConf 2022, Dornbirn, (data uploadu: , data dostępu: ), w: YouTube, (data dostępu: ).
- Jake Lazaroff, The Website vs. Web App Dichotomy Doesn't Exist, (data dostępu: ), w: Jake Lazaroff, jakelazaroff.com, (data dostępu: ).
- Marc van Neerven, PurePWA — A Radical U-Turn in Web Development, (data dostępu: ), w: Medium, (data dostępu: ).
- Progressive Web Apps, (data dostępu: ), w: web.dev, (data dostępu: ).