App eller web?
Helt siden appene fikk fast plass i folks lommer for over 10 år siden har det vært en diskusjon om man skal bruke app- eller webteknologi for å hjelpe folk med det de trenger.
Mye har skjedd siden den gang. Vi har fått verktøy som både gjør det lettere å lage skikkelige apper, verktøy som gjør at man kan lage "nesten-ordentlige" apper med webteknologier, samt tilgang til native funksjonalitet via nettleseren.
Ettersom at jeg tidligere snakket ut om mine meninger om "nesten-ordentlige" apper (som React Native og Flutter før), så tenkte jeg at det var på tide å mene litt om fortiden og fremtiden til Progressive Web Apps (PWA).
– Hybrid-apper lover mer enn de holder
Web 2.0 og Ajax i 2007
I 2007 stod Steve Jobs på scenen under WWDC og fortalte utviklere at man ikke trengte en egen SDK for iPhone (som hadde blitt annonsert 6 måneder tidligere), fordi man kunne bygge "amazing Web 2.0 and Ajax apps that look exactly and behave exactly like apps on the iPhone".
Entusiasmen for å bygge webapper for iPhone var ikke så stor som Apple kanskje hadde håpet på – mye fordi det var vanskelig å lage "apps that look exactly and behave exactly like apps on the iPhone".
Entusiasmen var faktisk så liten at Apple noen måneder senere måtte ut og presisere at det faktisk var planer om å slippe en skikkelig SDK, men at det kunne ta litt tid ettersom de ville lage en sikker plattform, uten mobilvirus.
Mobile First i 2011
Folk flest var nok ikke så redde mobilvirus, for markedet for tredjepartsapper og "hacks" via tjenester som Installer.app var stort, allerede før iOS fikk en offisiell SDK i mars 2008. Da App Store åpnet juli 2008 var ingen vei tilbake – apper var kommet for å bli.
I 2011 ga Luke Wroblewski ut boken Mobile First som revolusjonerte hvordan man tenkte utvikling og design for digitale flater. Wroblewski argumenterte for at man burde sikre at en tjeneste fungerte supert på mobile enheter først, ettersom den var den mest brukte enheten.
Allerede i 2010 ble det solgt flere "smarttelefoner" enn PC-er. Han fortalte at man burde starte med å lage mobilversjonen av en nettside, og så responsivt skalere den opp, for å sikre at løsningene var enkle og at mobilbrukerne ble godt ivaretatt. Han argumenterte også for å bruke sensorene i telefonene, som GPS og kamera, for å gjøre tjenester enklere å bruke.
«Det kommer regelmessig ut artikler som spår native apper nord og ned.»
Progressive Web Apps i 2015
I 2015 ble utrykket Progressive Web Apps lansert av Chrome-utvikler Alex Russel og designer Frances Berriman. De argumenterte for at nettsider skulle kunne bli apper, og vice versa.
De fortalte en historie om at en nettside kunne bli en app ved blant annet å legge seg på hjemskjermen, fungere offline og ha tilgang native funksjonalitet. De fortalte om en fremtid der man kunne ha en codebase som skulle fungere på alle enheter, helt uten å måtte installere noe.
Hvordan lage apper i 2020?
- Alt annet enn PWA er tullete.
Konseptet fikk støtte fra flere kanter, blant annet fra Google, Mozilla, Samsung og Microsoft, som la til ny funksjonalitet i sine systemer og nettlesere for å gjøre denne fremtiden til en realitet.
Siden idéen om PWA-er har flere spådd om hvor stort det kommer til å bli. Det kommer regelmessig ut artikler som spår native apper nord og ned, for eksempel "Vanlig mobilapp-utvikling vil bare være et nisjeområde innen to år", "2018 kan bli året appmarkedet snus på hodet" og "Why Progressive Web Apps Will Replace Native Mobile Apps", uten at det har hatt noe tydelige konsekvenser for app-markedet.
Så hva skjer egentlig med PWA-er i 2020?
App og web i 2020
Mye har skjedd siden 2015.
Hurtigapper (App Clips på iOS og Instant Apps på Android) er på vei til å bli det neste store. Apple lar deg kjøre akkurat samme kode på alle deres enheter, fra iOS til WatchOS til MacOS, som gir utrykket kryssplattform-apper en ny mening. På både iOS og Android begynner teknologien å sige ut fra bak appikonet inn i resten av systemet, som i taleassistenten, widgets og så videre.
På både iOS, Android og web styrkes fokuset på personvern, så brukeren skal få velge akkurat hvor mye informasjon apper og nettsider skal kunne få hente fra deg. Nettsider må i større og større grad må spørre om å bruke native kompatibilitet, i tillegg hvilke cookies som kan lagres.
«PWA-er vil også alltid ligge bak native løsninger, fordi native implementasjon naturligvis er prioritert.»
Samtidig har Apple nektet en del web API-er som har vært ønsket av PWA-utviklere, fordi de mener ondsinnede nettsider kan misbruke dataen. Det spekuleres om dette er fordi Apple vil tjene mer penger igjennom App Store, men om det er sant eller ikke, så kommer man uansett her inn i kjernen av problemet med PWA-er:
De vil alltid leve på nettleseren og enhetens premisser. Sånn er de også på Android. PWA-er vil også alltid ligge bak native løsninger, fordi native implementasjon naturligvis er prioritert.
Når man lager en PWA må man uansett lage en løsning som fungerer på de fleste nettlesere (og skjermstørrelser), uansett hvor lite/mye funksjonalitet nettleseren/enheten/brukeren gir PWA-en tilgang til. Om man velger å lage en løsning som fungerer på en brøkdel av brukernes enheter, er vi da i den fremtiden som Alex Russel og Frances Berriman tegnet opp?
Trodde React Native skulle spare masse tid, ble skuffa
PWA er best practice
Når man leser igjennom deres PWA-manifest nå, så leses den mest som en best practice-liste om man skal lage en nettside. Selv om man nå kan legge til en nettside på en iPhones hjemskjerm og bruke den offline, så tror jeg ikke den jevne bruker tenker på det som en "en app".
Men er det så viktig?
Idéen om PWA-er har fungert som en guide til hvordan man kan lage moderne nettsider, og hjulpet nettleser- og system-utvikler til å forstå hvordan webutviklere ønsker bruke deres tjenester.
Resultatet er at vi nå har mange veldig gode webapper som pusher grensene for hva som er mulig i en nettleser. Om de per definisjon er PWA-er er kanskje ikke så viktig. Om man klarer å hjelpe folk med det de trenger har vi som utviklere oppnådd målet vårt.
Veien videre for PWA
Med alle disse moderne webappene kan man kanskje tenke at apper og web begynner ligne, fordi de får mer og mer native funksjonalitet.
Samtidig blir native apper sydd mer og mer sammen med OS-et, noe som gir helt andre muligheter.
«Det har blitt klart at nettsider aldri kan bli apper, og vice versa.»
Jeg tenker derfor at avstanden mellom webapper og native apper er større en noen gang, og at avstanden vil fortsette å bli større.
Du må fortsatt starte med å bestemme om du skal lage en app eller en webside, ut fra hvilken tjeneste du skal lage. Apper og nettsider har forskjellig bruk. Det har blitt klart at nettsider aldri kan bli apper, og vice versa.
Målet må være at man klarer å bruke plattformen og teknologien, og dens styrker, for å hjelpe folk med det de trenger. Til syvende og sist er det brukeropplevelsen, ikke teknologien, brukerne våre bryr seg om.
At folk bruker 94 prosent av tiden de er på mobilen utenom nettleseren sier kanskje noe om hvor folk trives best.
Alt vi lurer på om å lage iPhone-apper
Når bør man lage en app, hvordan, og hvorfor ikke med React Native? 🤔 Vi spurte ut Petter Holstad Wright fra Shortcut.