Articles

Applicazione web progressiva

Ci sono molte tecnologie comunemente usate per creare applicazioni web progressive. Tutte le PWA richiedono almeno un service worker e un manifest.

ManifestEdit

Il manifest delle web app è una specifica del W3C che definisce un manifest basato su JSON (di solito etichettato come manifest.json) per fornire agli sviluppatori un luogo centralizzato dove mettere i metadati associati ad un’applicazione web, tra cui:

  • Il nome dell’applicazione web
  • Link alle icone della web app o agli oggetti immagine
  • L’URL preferito per lanciare o aprire la web app
  • I dati di configurazione della web app
  • L’orientamento predefinito della web app
  • L’opzione per impostare la modalità di visualizzazione, es.

Questi metadati sono cruciali per l’aggiunta di un’app ad una schermata iniziale o comunque elencati accanto alle app native.

iOS supportEdit

iOS Safari implementa parzialmente i manifesti, mentre la maggior parte dei metadati PWA possono essere definiti tramite estensioni specifiche di Apple ai meta tag. Questi tag permettono agli sviluppatori di abilitare la visualizzazione a schermo intero, definire icone e splash screen, e specificare un nome per l’applicazione.

WebAssemblyEdit

Articolo principale: WebAssembly

WebAssembly permette al codice precompilato di essere eseguito in un browser web, a velocità quasi nativa. Così, le librerie scritte in linguaggi come il C possono essere aggiunte alle applicazioni web. A causa del costo del passaggio dei dati da JavaScript a WebAssembly, gli usi a breve termine saranno principalmente il number-crunching (come il riconoscimento vocale e la computer vision), piuttosto che intere applicazioni.

Memorizzazione dei datiModifica

I contesti di esecuzione delle Web App progressive vengono scaricati ogni volta che è possibile, quindi le Web App progressive hanno bisogno di memorizzare la maggior parte dello stato interno a lungo termine (dati utente, risorse applicative caricate dinamicamente) in uno dei seguenti modi

Memorizzazione WebModifica

Articolo principale: Web storage

Web Storage è un’API standard del W3C che permette la memorizzazione di valori chiave nei browser moderni. L’API consiste di due oggetti, sessionStorage (che abilita la memorizzazione per sole sessioni che viene cancellata alla fine della sessione del browser) e localStorage (che abilita la memorizzazione che persiste attraverso le sessioni).

Service workersEdit

Un service worker è un web worker che implementa un proxy di rete programmabile che può rispondere alle richieste web/HTTP del documento principale. È in grado di controllare la disponibilità di un server remoto e di mettere in cache il contenuto quando quel server è disponibile, e servire quel contenuto successivamente al documento. I service worker, come qualsiasi altro web worker, lavorano separatamente dal contesto del documento principale. I service worker possono gestire le notifiche push e sincronizzare i dati in background, memorizzare nella cache o recuperare richieste di risorse, intercettare richieste di rete e ricevere aggiornamenti centralizzati indipendentemente dal documento che li ha registrati, anche quando quel documento non è caricato.

I service worker passano attraverso un ciclo di vita in tre fasi: registrazione, installazione e attivazione. La registrazione consiste nel comunicare al browser la posizione del lavoratore di servizio in preparazione all’installazione. L’installazione avviene quando non c’è un service worker installato nel browser per la webapp, o se c’è un aggiornamento del service worker. L’attivazione avviene quando tutte le pagine della PWA sono chiuse, in modo che non ci sia conflitto tra la versione precedente e quella aggiornata. Il ciclo di vita aiuta anche a mantenere la coerenza quando si passa da una versione all’altra del service worker, poiché solo un singolo service worker può essere attivo per un dominio.

Indexed Database APIEdit

Articolo principale: Indexed Database API

Indexed Database API è un’API di database standard W3C disponibile in tutti i principali browser. L’API è supportata dai browser moderni e permette la memorizzazione di oggetti JSON e di qualsiasi struttura rappresentabile come una stringa. Indexed Database API può essere usata con una libreria wrapper che fornisce costrutti aggiuntivi intorno ad essa.

AppCache (obsoleto)Edit

Articolo principale: Cache manifest in HTML5

Application Cache (o AppCache o HTML5 cache manifest) è una tecnologia precedente che permetteva all’applicazione di mettere in cache il contenuto in anticipo per un uso successivo quando il dispositivo è offline. Funziona adeguatamente per le applicazioni a pagina singola per cui è stata progettata, ma fallisce in modo problematico per le applicazioni a più pagine come i wiki. A partire da maggio 2019, la tecnologia è supportata dai principali browser e in uso da anni da alcuni siti, ma è già deprecata in favore dei service worker e alla fine sarà rimossa.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *