En progressiv webbapp är en webbplats byggd med funktioner som gör att den kan bete sig mer som en installerad applikation: den kan läggas till på en enhets startskärm, startas utan webbläsarens Chrome, fungera offline eller på otillförlitliga anslutningar, och i miljöer som stöds få push-meddelanden. Det är en uppsättning funktioner som tillämpas på en vanlig webbplats snarare än en separat teknik.
De tekniska grunderna är en service worker, vilket är ett skript som körs separat från sidan och som kan fånga upp nätverksförfrågningar och hantera cachade svar, och ett webbappmanifest som beskriver hur applikationen ska se ut när den är installerad. Båda kräver att webbplatsen hanteras via en säker anslutning. Utöver dessa är funktionerna progressiva: en webbläsare som stöder dem ger den förbättrade upplevelsen medan andra får den vanliga webbplatsen.
Hanteringen av offline- och otillförlitliga anslutningar är den funktion som har det tydligaste praktiska värdet. En service worker kan cachelagra applikationsgränssnittet och tidigare visat innehåll, så att en besökare med en oregelbunden mobilanslutning ser innehåll snarare än en felsida, och ett återbesök laddas från cachen snarare än från nätverket. För målgrupper med dålig anslutning är detta en betydande förbättring snarare än en förfining.
Installation eliminerar friktionen med distribution i appbutiken, vilket är det främsta kommersiella argumentet. Det finns ingen inlämningsprocess, ingen fördröjning av granskning, ingen provision från butiken och uppdateringar distribueras omedelbart utan att användarna väntar på att installera dem. För företag vars applikation inte kräver djupgående plattformsintegration undviker detta en betydande löpande kostnad och ett beroende av plattformsvakter.
Skillnader i plattformskapacitet är fortfarande den största begränsningen, och de har minskat ojämnt. Stöd för installation, aviseringar och bakgrundsfunktioner varierar mellan plattformar, där iOS historiskt sett är mer restriktivt än Android, och lagringsgränser och policyer för utkassning skiljer sig åt. Att bedöma vad som faktiskt är tillgängligt på de plattformar en publik använder, snarare än att anta paritet, är nödvändigt innan man bestämmer sig för en strategi som är beroende av en viss funktion.
Upptäckt är en verklig avvägning i båda riktningarna. Webbdistribution innebär att applikationen är nåbar via länk och synbar i sökningar, vilket är en betydande fördel jämfört med butiksdistribution där upptäckten beror på ranking inom en butik. Det betyder också att applikationen inte visas i butiken där många användare letar efter applikationer, och det finns ingen motsvarighet till installationsprompten som en butikslistning tillhandahåller.
Push-meddelanden kräver en mer skeptisk bedömning än de vanligtvis får. Funktionen är genuint värdefull för tidskänsliga, individuellt relevanta meddelanden, och den missbrukas i stor utsträckning för reklaminnehåll som mottagarna inte förväntade sig. Eftersom tillstånd begärs en gång och avslag i praktiken är permanent, leder en fråga innan något värde fastställs tillförlitligt till avslag som inte kan återställas senare när det finns något värt att skicka.
Cachelagring av service workers medför sina egna risker som kräver avsiktlig hantering. En cachestrategi som serverar inaktuellt innehåll på obestämd tid gör att användare ser föråldrad information utan något uppenbart sätt att uppdatera, och en dåligt distribuerad service worker kan vara svår att ta bort från enheter som redan har installerat den. Versionshantering, uppdateringsstrategier och en mekanism för att tvinga fram uppdatering är nödvändiga snarare än valfria.
Eftersom tillvägagångssättet omfattar frontend-arkitektur, cachningsstrategi och distributionsbeslut är det ett produktbeslut snarare än ett tekniskt. I praktiken väljs funktionsuppsättningen inom produktutveckling mot publikens faktiska behov, ligger cachnings- och leveranskonsekvenserna hos webbprestanda arbete, och avvägningen mellan upptäckt och distribution i butik vägs normalt mot den bredare kanalstrategin i strategisk planering och konsultation.