Progressive Web App
Progressive Web App (PWA, in italiano applicazione web progressiva) è un termine, coniato in origine da Google, che si riferisce ad una applicazione web che viene sviluppata e caricata come una normale pagina web, ma che si comporta in modo simile alle applicazioni native quando utilizzata su un…
Progressive Web App (PWA, in italiano applicazione web progressiva) è un termine, coniato in origine da Google, che si riferisce ad una applicazione web che viene sviluppata e caricata come una normale pagina web, ma che si comporta in modo simile alle applicazioni native quando utilizzata su un dispositivo mobile.
Storia
Sin dal 2005 le tecnologie per lo sviluppo sul web si sono spostate dalla produzione di pagine statiche a pagine dinamiche attraverso l'uso di strumenti lato server (PHP, ASP.NET) e lato client (JavaScript attraverso la nuova funzionalità Ajax), e tramite il responsive web design. Nonostante le iniziali spinte per la creazione di applicazioni web basate su queste tecnologie su terminali come l'iPhone del 2007, i tentativi con le web-app hanno fallito nei confronti rispetto alle app native. Le app native fornivano una user experience migliore e venivano caricate più velocemente in confronto al caricamento che doveva essere fatto dal browser. Il confezionamento in pacchetti di risorse e l'accesso diretto all'hardware consentiva alle applicazioni native di essere molto più veloci e di fornire maggiori funzionalità. Ma dalla metà del 2010, i continui miglioramenti nell'HTML5, CSS3, e JavaScript, i browser web sempre più performanti e rispondenti agli standard insieme a processori potenti come l'A10 di Apple e lo Snapdragon 821 hanno reso tali applicazioni una alternativa percorribile.
Nel 2015, Frances Berriman e lo sviluppatore Alex Russell di Google Chrome hanno coniato il termine "Progressive Web Apps" per descrivere le app che sfruttavano le nuove funzionalità offerte dai moderni browser, inclusi Service Workers e Web App Manifests, che consentono agli utenti di promuovere le web app affinché si comportino come applicazioni di prima classe, ovvero come applicazioni native, nel sistema operativo dei loro dispositivi.
Descrizione
Diversamente dalle applicazioni tradizionali, le PWA sono un ibrido tra le normali pagine web (o siti web) e le applicazioni mobili. Questo modello di applicazioni cerca di combinare le possibilità offerte dalla maggior parte dei moderni browser con i benefici dell'utilizzo in mobilità.
Il termine Progressive si riferisce al fatto che, dal punto di vista dell'esperienza utente, queste applicazioni possono abilitare una serie di funzionalità aggiuntive alle relative pagine web a seconda delle funzionalità offerte dal dispositivo. Ad esempio il browser può proporre all'utente di salvarle nella schermata home del terminale mobile, per essere percepite a tutti gli effetti come delle app native. Diverse aziende hanno riscontrato notevoli miglioramenti in diversi indicatori chiave di prestazione, come un aumento nel tempo speso nel sito o nelle conversioni dei nuovi utenti. In pratica, la pagina web creata come app la si ritrova come istanza presente nella lista delle app installate.
Aspetti tecnici
Secondo gli sviluppatori Google, queste caratteristiche sono:
Progressive - Funzionano per ogni utente, a prescindere dal browser scelto perché sono costruite alla base con principi di miglioramento progressivo.
Responsive - Si adattano alle varie dimensioni dello schermo: desktop, mobile, tablet, o dimensioni che potranno in seguito rendersi disponibili.
Indipendenti dalla disponibilità della connessione - I Service worker consentono di far funzionare l'applicazione offline, in mancanza di connessione o con connessioni a bassa qualità.
App-like - Si comportano con l'utente come se fossero delle app native, in termini di interazione e navigazione.
Aggiornate - Le informazioni sono sempre aggiornate grazie al processo di aggiornamento dei dati offerto dai service worker.
Sicure - Vengono esposte su protocollo HTTPS per evitare che la connessione esponga informazioni o che i contenuti vengano alterati.
Discoverable - Vengono identificate come “applicazioni” grazie al manifesto W3C e al service worker registration scope che consente ai motori di ricerca di trovarle.
Riattivabili - Rendono facile la riattivazione dell'applicazione grazie a capacità quali le notifiche push.
Installabili - Consentono all'utente di "salvare" le app che considera più utili con la corrispondente icona sullo schermo del proprio terminale mobile (home screen) senza che si debba affrontare tutti i passaggi e problemi legati all'uso dell'app store.
Linkabili - Facilmente condivisibili tramite l'URL e non richiedono complesse installazioni.
Le Progressive Web Apps descritte da Shoaib nel suo post: sono un'evoluzione delle tecnologie web esistenti. Come tali, non richiedono implementazioni o installazioni separate. La pubblicazione di una Progressive Web App funziona allo stesso modo di un'altra pagina web. Dal 2016, le Progressive Web Apps vengono implementate nel browser Chrome, e gli altri browser hanno annunciato il supporto.
I criteri tecnici di base perché un sito venga considerato dal browser una Progressive Web App sono descritti nel post di Russell:
Vengono esposte da una Sorgente Sicura https. Vengono servite su protocollo TLS con la visualizzazione del lucchetto verde nel browser .
Possono essere caricate ed eseguite anche mentre il terminale dell'utente è offline (anche in caso si tratti solo di una pagina creata allo scopo). Per ottenere questa funzionalità le Progressive Web Apps richiedono i Service Workers.
Abbiano un Web App Manifest di riferimento con almeno quattro proprietà chiave: name, short_name, start_url, e display (il cui valore può essere standalone o fullscreen)
Una icona grande almeno 144×144 pixel in formato png . Es..: "icons": [ { "src": "/images/icon-144.png", "sizes": "144x144", "type": "image/png" } ]
MCMX
