Progressive Web App: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti. |
|||
(31 versioni intermedie di 23 utenti non mostrate) | |||
Riga 1:
{{C|La voce—tradotta dalla Wikipedia in lingua inglese [[:en:Progressive Web Apps]] — potrebbe presentare il medesimo problema di [[Wikipedia:Ricerca originale]] presente sulla voce tradotta all'epoca, suggerita una ri-traduzione|informatica|aprile 2023}}
<span>Il termine </span>'''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à.▼
'''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>
== 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 17 ⟶ 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''' -
* '''Installabili''' -
* '''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.
▲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/}}</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. Nel 2016, Progressive Web Apps vengono implementate nel browser Chrome, ma altri browser le supporteranno in futuro.
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>
* Vengono esposte da una Sorgente Sicura https. Vengono servite su protocollo TLS con la visualizzazione del lucchetto verde nel browser .
*
* Abbiano un Web App Manifest di riferimento con almeno quattro proprietà chiave: name, short_name, start_url, e display (
* 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
* Il nome della web application
* I link alle icone o alle immagini della web app
Riga 39 ⟶ 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
=== Service Workers ===
Le app mobili native
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
Proprietà dei Service Worker
Riga 56 ⟶ 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 65 ⟶ 67:
=== Architettura della Shell delle Applicazioni ===
Per il caricamento veloce, i service worker memorizzano l'interfaccia di base o la "shell" della
== Note ==
<references />
== Voci correlate ==
* [[Applicazione web]]
{{portale|informatica}}
[[Categoria:Applicazioni web]]
|