Progressive Web App (PWA): cosa sono, pro e contro e i principali esempi sul mercato

Viviamo in un mondo sempre più veloce, dinamico, in continua evoluzione. Le innovazioni incrementali che hanno un impatto sulle persone si susseguono, con un focus sempre più chiaro su:

  • prestazioni, si pensi ai dispositivi sempre più potenti che usiamo ogni giorno o ai compiti che ci permettono di fare più velocemente;
  • esperienza, per eliminare ogni attrito nell’uso del software/hardware;
  • intelligenza, con algoritmi che ormai lavorano in ottica predittiva.

È in questa direzione, concentrandosi principalmente sulle prestazioni e sulla User Experience per l’utente finale, che va lo sviluppo delle Progressive Web App (PWA), una soluzione che vuole unire il meglio delle app native e della tecnologia Web.

Una Progressive Web App (PWA) è un’app che utilizza le moderne funzionalità Web per offrire agli utenti un’esperienza molto simile (se non migliore) a quella di un’app nativa.

A differenza delle app tradizionali, le progressive web app sono un ibrido tra normali pagine web e applicazioni mobili. Il termine “progressivo” si riferisce al fatto che introducono nuove funzionalità e, dal punto di vista dell’esperienza utente, sono inizialmente percepite come normali siti web ma progressivamente si comportano più come applicazioni mobili, tra l’altro multipiattaforma.

Pro e contro delle Progressive Web App

Le caratteristiche principali sono:

  • Progressive – Funzionano per ogni utente, indipendentemente 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 possono diventare disponibili in seguito.
  • App-like – Si comportano con l’utente come se fossero 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.
  • Sicuro – Esposto su protocollo HTTPS per evitare che la connessione visualizzi le informazioni o ne alteri i contenuti.
  • Ricercabile – Sono identificate come “applicazioni” e sono indicizzate dai motori di ricerca.
  • Riattivabile – Rendono facile la riattivazione dell’applicazione grazie a funzionalità come le notifiche web.
  • Installabili – Permettono all’utente di “salvare” le applicazioni che ritiene più utili con la relativa icona sullo schermo del suo terminale mobile (home screen) senza dover affrontare tutti i passaggi e i problemi legati all’uso dell’app store.
  • Linkabili – Facilmente condivisibili via URL senza installazioni complesse.
  • Offline – Ancora una volta si tratta di mettere l’utente davanti a tutto, evitando il solito messaggio di errore in caso di connessione debole o assente. Le PWA si basano su due particolarità: prima di tutto lo ‘scheletro’ dell’app, che richiama la struttura della pagina, anche se i suoi contenuti non rispondono e i suoi elementi includono l’intestazione, il layout della pagina, così come un’illustrazione che segnala che la pagina si sta caricando.

I punti deboli si riferiscono a:

  • supporto iOS dalla versione 11.3 in poi;
  • maggiore utilizzo della batteria del dispositivo;
  • non tutti i dispositivi supportano l’intera gamma di funzionalità PWA (stesso discorso per i sistemi operativi iOS e Android);
  • non è possibile stabilire un forte re-engagement per gli utenti iOS (schema URL, notifiche web standard);
  • il supporto per l’esecuzione offline è comunque limitato;
  • mancanza di presenza sugli store (non c’è possibilità di acquisire traffico da quel canale);
  • non c’è un “corpo” di controllo (come gli store) e un processo di approvazione;
  • accesso limitato ad alcuni componenti hardware dei dispositivi;
  • poca flessibilità riguardo a contenuti “speciali” per gli utenti (es. programmi fedeltà, loyalty, ecc.).

L’importanza di Manifest e Service Workers

Le nuove caratteristiche dei browser moderni che permettono alle PWA di offrire il meglio sono “manifest” e “service workers”.

Manifest
È un semplice file JSON che definisce i parametri di base delle PWA, per controllare come l’app deve apparire all’utente e definire il suo aspetto al lancio: icone, altre caratteristiche di base come colori, font, orientamento dello schermo e possibilità di essere installata nella schermata iniziale.

Service workers
Sono la vera chiave delle esperienze avanzate che una PWA può offrire. Un service worker è uno script che il browser esegue in background, separato da una pagina web, per utilizzare funzioni che non richiedono una pagina web o l’interazione dell’utente.

Oggi i SW includono già funzioni come le notifiche push e la sincronizzazione in background. In futuro supporteranno funzioni come la sincronizzazione periodica o il geofencing. La funzione principale è la capacità di intercettare e gestire le richieste di rete, compresa la gestione programmatica di una cache di risposte. Si tratta di un’API che supporta esperienze offline dando agli sviluppatori il controllo completo dell’esperienza.

Con l’aggiunta del supporto ai service worker nell’ultima versione di iOS, Apple ha aperto le porte alle PWA per raggiungere, a tutti gli effetti, l’intero mercato mobile.

Quali sono le tecnologie più utilizzate per le PWA?

Ci sono diverse tecnologie per la creazione di una Progressive Web App, principalmente basate su JavaScript, con caratteristiche diverse.

Tra le principali abbiamo:

  • React
    Una potente libreria JavaScript per costruire interfacce utente dinamiche e moderne
  • Polymer
    Una combinazione di componenti, strumenti e modelli progettati per creare PWA
  • Angular
    Un framework JavaScript per creare applicazioni web dinamiche che usa HTML come linguaggio template
  • Ionic
    Un framework JavaScript per creare potenti applicazioni per più piattaforme utilizzando un codice di base
  • Accelerated Mobile Pages (AMP)
    Un progetto open source per migliorare le prestazioni delle pagine web

Come scegliere tra una PWA o una soluzione nativa

Arriva il momento della scelta, quale soluzione adottare?

È preferibile scegliere lo sviluppo di una PWA quando:

  • L’app deve essere facilmente distribuita ad una base di utenti ancora più ampia
  • Il budget a disposizione non è elevato
  • C’è poco tempo a disposizione per il go-live
  • È importante la corretta indicizzazione sui motori di ricerca
  • È richiesta la compatibilità cross-platform
  • Sono necessari più aggiornamenti in tempi stretti

Al contrario, è preferibile sviluppare un’app nativa quando:

  • È necessario muoversi sugli store
  • La velocità e la reattività sono punti chiave per il successo dell’app
  • L’app richiede un uso importante delle caratteristiche hardware del dispositivo
  • Il modello di business è basato, per esempio, sul costo per download e/o IAP (In App Purchase)
  • L’app deve essere integrata con altre app di terze parti

Le differenze nel processo di installazione: PWA vs app nativa

Il processo generale di installazione delle app native segue questo flusso:

  • Accesso allo Store di riferimento (App Store o Google Play)
  • Cerca l’app
  • Clicca su “Installa”
  • Accettazione delle varie autorizzazioni
  • Apertura e lancio dell’app
  • Uso dell’app

Nel confronto, l’installazione PWA comprende:

  • Visitare il sito
  • Addizione alla schermata iniziale del dispositivo (opzionale)
  • Apertura dell’app
  • Uso dell’app

I principali esempi di una Progressive Web App

Sono già molti gli esempi di PWA “illustrati” che gli utenti utilizzano sui loro dispositivi e tra i principali riportiamo:

Pinterest

Per saperne di più:
Addy Osmani su Medium >A Pinterest Progressive Web App Performance Case Study

Instagram

L’attuale PWA è molto simile all’app nativa e ha tutte le principali caratteristiche di interazione, dalle notifiche alla possibilità di visualizzare le Storie.

Google Maps

Per saperne di più:
The Next Web >La leggera Maps Go di Google è solo una Progressive Web App

Tinder

Per saperne di più:
Addy Osmani su Medium >A Progressive Tinder Web App Performance Case Study

Twitter Lite

Per saperne di più:
Twitter Blog >Come abbiamo costruito Twitter Lite
Google Developers > Twitter Lite PWA aumenta significativamente l’impegno e riduce l’utilizzo dei dati
Paul Armstrong su Medium > Twitter Lite e React Progressive Web App ad alte prestazioni Apps at Scale

YouPorn

La decisione di utilizzare le PWA è principalmente per aggirare le limitazioni che Apple e Google pongono sui contenuti pornografici negli store, così come per garantire una migliore esperienza utente.

Per saperne di più:
YouPorn Blog > YouPorn App Experience
VentureBeat > YouPorn goes progressive with new mobile web apps for Android and iOS

Alcuni riferimenti per approfondire il tema delle Progressive Web App

Google Progressive Web App > https://developers.google.com/web/progressive-web-apps/

Google PWA Checklist > https://developers.google.com/web/progressive-web-apps/checklist

Appscope, directory per Progressive Web Apps (PWAs) > https://appsco.pe/

Il futuro è dunque “progressivo”?

La risposta è, come sempre, dipende. La decisione di sviluppare una PWA segue analisi e riflessioni che vanno fatte di volta in volta, da progetto a progetto, da utente a utente. Anzi, potremmo aggiungere un’ulteriore complessità: quella del posizionamento sul motore di ricerca: abbiamo gestito tutto correttamente o stiamo cannibalizzando il traffico sul nostro sito?

I fattori che portano alla scelta sono molti, come anticipato in questo studio, quindi non esiste una ricetta definita e standard ma quella che dà il contesto si sposa correttamente con strategia e obiettivi. Parliamone insieme

.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.