Det begynner å bli noen år siden første gang jeg hørte om PWA. Jeg ble umiddelbart begeistret, men oppdaget raskt at det var en stund til vi faktisk kunne lage det. I dag er situasjonen en helt annen.
Jeg tenkte derfor å skrive en tekst om PWA og status, men først en liten innledning.
Hva er PWA
PWA er en forkortelse for Progressive Web App og kan kort beskrives som en web applikasjon, men med opplevelsen som en native app. Eller med andre ord en web side som oppfører seg og oppleves som en installert app.
Hvorfor PWA
Men hva er vitsen med det? Hvorfor kan vi ikke bare lage native apps hvis det er det man ønsker seg?
En PWA støttes på alle plattformer siden den kjøres i en nettleser, det betyr at det kun er én kodebase og at den vil kunne kjøre på PC som på en mobil, både Android og iOS. Når det er sagt så støtter ikke alle nettlesere alle teknologier. Så hvis det er noe helt spesielt appen skal gjøre og man står mellom PWA vs native, så bør man også vurdere nettleser-støtten.
I tillegg så bruker man JavaScript og HTML5, så tilgangen på utviklere bør være bedre.
Mange vil nok også påstå at det går raskere å lage en web applikasjon enn en native applikasjon. Det er nok en sannhet med modifikasjoner, men i mange tilfeller stemmer det siden man i løpet av minutter kan få opp en tilgjengelig nettside.
I en PWA så slipper brukeren å oppdatere appen.
Hvordan PWA
Uten å gå for mye i dybden teknisk så kan dette oppsummeres med at du lager en nettside, men legger til noen deler som gir nettsiden noen muligheter som er mer vanlig i native apps.
- Service worker. Dette er et lite javascript som kjører i bakgrunnen, separat fra selve nettsiden. Siden scriptet kjører i bakgrunnen uavhengig av nettleseren gir den annen funksjonalitet som eksempelvis push notifikasjoner, synkronisering og offline støtte.
- Manifest. Manifestet er en liten json fil med litt informasjon om nettsiden, tittel, logo, ikoner etc.
Status
Det første spørsmålet til mange er klart og tydelig, hvilke nettlesere støtter disse funksjonene? Det er derfor gode nyheter å melde at de største nettleserne støtter Service Workers.
Det betyr i prakses at du på iPhone og Android kan lage web applikasjoner med
- Offline-støtte
- Push notifikasjoner
- Bakgrunnssynkronisering
- Fullskjerm-modus
I tillegg til å utnytte, GPS, kamera, Bluetooth (kun android) og mye annet.
Spør du meg er ikke teknologien det største problemet for PWA, men det er hvordan nettlesere håndtere blokkerte funksjoner som GPS. Det er alt for vanskelig å gi tilgang til GPS hvis man først har blokkert ved en feiltagelse.
Eksempler
Her er noen eksempler på gode PWAer:
Spotify
Man trenger faktisk ikke å laste ned en app for å lytte til Spotify. Legg ikonet til startskjermen din og nettsiden vil gi deg fullskjerm-modus.
https://open.spotify.com
Anbefaler å legge den til startskjermen slik at du får fullskjerm-modus.
https://pinterest.com
Denne bruker jeg selv som PWA istedenfor nedlastet app. For meg er denne så god at jeg ikke ser vitsen med å laste ned appen. Anbefaler naturligvis også her å legge den til startskjermen.
https://twitter.com