Progressive Web App: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
-O |
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti. |
||
(24 versioni intermedie di 17 utenti non mostrate) | |||
Riga 1:
{{
'''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 [[Applicazione mobile|applicazioni native]] quando utilizzata su un [[dispositivo mobile]].<ref>{{Cita web |url=https://developers.google.com/web/progressive-web-apps/ |titolo=Progressive Web Apps |4=Google Developers |sito=Google Developers |lingua=en |accesso=2018-10-06 }}</ref>
Il termine '''Progressive Web App''' (PWA, applicazioni web progressive) viene utilizzato per indicare una nuova metodologia per sviluppare software. Diversamente dalle applicazioni tradizionali, le progressive web apps sono un ibrido tra le normali pagine web (o siti web) e le applicazioni mobili. Questo nuovo modello di applicazioni cerca di combinare le possibilità offerte dalla maggior parte dei moderni browser con i benefici dell'utilizzo in mobilità.▼
== 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
Nel 2015, Frances Berriman e lo sviluppatore Alex Russell di [[Google Chrome]] hanno coniato il termine "Progressive Web Apps"<ref name="infrequently.org">{{Cita web|cognome1=Russell|nome1=Alex|titolo=Progressive Web Apps: Escaping Tabs Without Losing Our Soul|url=https://infrequently.org/2015/06/progressive-apps-escaping-tabs-without-losing-our-soul/|accesso=15 giugno 2015|cid=4|dataarchivio=29 gennaio 2016}}</ref> 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
▲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 client side (e.g. [[AJAX|Ajax]]<ref>{{Cita web|url=http://adaptivepath.org/ideas/ajax-new-approach-web-applications/|titolo=Ajax: A New Approach to Web Applications|cid=1|cognome1=Garrett|nome1=Jesse James|accesso=18 febbraio 2005|dataarchivio=29 gennaio 2016}}</ref>), e tramite il [[Design responsivo|responsive web design]].<ref>{{Cita web|url=http://alistapart.com/article/responsive-web-design|titolo=Responsive Web Design|cid=2|cognome1=Marcotte|nome1=Ethan|accesso=25 maggio 2010|dataarchivio=29 gennaio 2016}}</ref> 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, 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]], [[CSS|CSS3]], e [[JavaScript]], i browser web sempre più performanti e rispondenti agli standard insieme a processori potenti come l'[[Apple A10 Fusion|A10]] e lo Snapdragon 821 hanno reso le app ibride una alternativa percorribile.
▲
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<ref>{{Cita web |url=https://developers.google.com/web/ilt/pwa/introduction-to-progressive-web-app-architectures |titolo=Introduction to Progressive Web App Architectures |4=Google Developers |sito=Google Developers |lingua=en |accesso=2018-10-06 }}</ref>. 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<ref>{{Cita web |url=https://medium.freecodecamp.org/progressive-web-apps-101-the-what-why-and-how-4aa5e9065ac2 |titolo=Progressive Web Apps 101: the What, Why and How – freeCodeCamp.org |sito=freeCodeCamp.org |data=2018-07-20 |lingua=en |accesso=2018-10-06}}</ref>. Diverse aziende hanno riscontrato<ref>{{Cita web|url=https://ymedialabs.com/progressive-web-apps|titolo=Why Progressive Web Apps Are The Future of Mobile Web (2019 Research)}}</ref> notevoli miglioramenti in diversi [[Indicatore chiave di prestazione|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.
▲Nel 2015, Frances Berriman e lo sviluppatore Alex Russell di Google Chrome hanno coniato il termine "Progressive Web Apps"<ref name="infrequently.org">{{Cita web|cognome1=Russell|nome1=Alex|titolo=Progressive Web Apps: Escaping Tabs Without Losing Our Soul|url=https://infrequently.org/2015/06/progressive-apps-escaping-tabs-without-losing-our-soul/|accesso=15 giugno 2015|cid=4|dataarchivio=29 gennaio 2016}}</ref> 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 device. Secondo gli sviluppatori Google,<ref name="infrequently.org"/><ref>{{Cita web|url=https://developers.google.com/web/fundamentals/getting-started/your-first-progressive-web-app/?hl=en}}</ref><ref>{{Cita web|url=https://developers.google.com/web/progressive-web-apps}}</ref> queste caratteristiche sono:
== Aspetti tecnici ==
Secondo gli sviluppatori Google,<ref name="infrequently.org"/><ref>{{Cita web|url=https://developers.google.com/web/fundamentals/getting-started/your-first-progressive-web-app/?hl=en}}</ref><ref>{{Cita web|url=https://developers.google.com/web/progressive-web-apps}}</ref> queste caratteristiche sono:
* '''Progressive''' - Funzionano per ogni utente, a prescindere dal browser scelto perché sono costruite alla base con principi di miglioramento progressivo.
* '''[[Design responsivo|Responsive]]''' - Si adattano alle varie dimensioni dello schermo: desktop, mobile, tablet, o dimensioni che potranno in seguito rendersi disponibili.
Riga 18 ⟶ 20:
* '''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<ref name="w3cmanifest">W3C [https://www.w3.org/TR/appmanifest/
* '''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:<ref>{{Cita web|url=https://www.addonsolutions.com/blog/is-it-right-time-to-go-for-progressive-mobile-web-app-development-2.html/|titolo=Copia archiviata|accesso=11 dicembre 2016|urlarchivio=https://web.archive.org/web/20170205200630/https://www.addonsolutions.com/blog/is-it-right-time-to-go-for-progressive-mobile-web-app-development-2.html|dataarchivio=5 febbraio 2017|urlmorto=sì}}</ref> 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:<ref>{{Cita web|url=https://infrequently.org/2016/09/what-exactly-makes-something-a-progressive-web-app/}}</ref>
Riga 30 ⟶ 32:
* Una icona grande almeno 144×144 pixel in formato png . Es..: "icons": [ { "src": "/images/icon-144.png", "sizes": "144x144", "type": "image/png" } ]
== Tecnologie impiegate per la creazione ==
=== Il manifesto principale ===
Il manifesto della web app è una specifica del [[World Wide Web Consortium|W3C]] in formato [[JavaScript Object Notation|JSON]]<ref name="w3cmanifest"/> che fornisce agli sviluppatori il posto dove mettere i [[Metadato|metadata]] associati con l'applicazione web tra cui:
* Il nome della web application
Riga 41:
* La dichiarazione dell'orientamento di default della web app
* L'abilitazione a impostare la modalità dello schermo, ad esempio in full screen
Impostando e modificando i metadata del file manifesto, gli sviluppatori consento agli [[user agent]] di creare delle modalità di fruizione per le Progressive Web App che hanno le stesse caratteristiche delle app native.
=== Service Workers ===
Le app mobili native forniscono una esperienza ricca e buone performance, al costo dell'occupazione di spazio nel terminale, mancanza di aggiornamenti in tempo reale e scarsa visibilità nei motori di ricerca. Le web app tradizionali al contrario sono carenti sugli altri aspetti: mancanza di eseguibile compilato nativamente, insieme alla dipendenza dalla connettività che potrebbe essere inaffidabile o lenta. I Service Worker vengono utilizzati nel tentativo di fornire il meglio di questi due mondi alle progressive web app.
Tecnicamente, i Service Worker forniscono un [[proxy]] di rete implementato come script in JavaScript nel browser web per gestire da programma le richieste web/HTTP. I Service Worker si interpongono tra la connessione di rete e il terminale che fornisce il contenuto. Sono capaci di utilizzare i meccanismi di cache in maniera efficiente e di consentire un comportamento privo di errori durante lunghi periodi di utilizzo off line.
Proprietà dei Service Worker
Riga 58:
# ID o UUID allocati
# Con eventi con cicli di vita
# Hanno una mappa delle risorse degli script
# Possono saltare l'attesa
Benefici dei Service Worker
Riga 71:
== Note ==
<references />
== Voci correlate ==
* [[Applicazione web]]
{{portale|informatica}}
[[Categoria:Applicazioni web]]
|