PWA: Perchè svilupparne una

Netfarm

Cosa sono le Progressive Web App (PWA)

Cosa sono le Progressive Web App e perché sono così interessanti anche nel 2020, dopo ben 5 anni dalla loro comparsa sulla scena della programmazione di applicazioni mobile?

Il termine 
Progressive Web App viene coniato inizialmente da Google e si riferisce ad applicazioni web che vengono sviluppate e caricate dai browser come pagine web, ma che si comportano effettivamente in maniera molto simile alle app native quando vengono utilizzati su dispositivi mobile. Quindi possiamo dire che sono un ibrido tra le normali pagine web e le app native.  Il termine "Progressive" si riferisce all'esperienza dell'utente, poiché queste applicazioni possono abilitare una serie di funzionalità aggiuntive alle normali pagine web a seconda delle funzionalità del dispositivo. 


This image was created and shared by Google and used according to terms described in the CreativeCommons 4.0 Attribution License. 


Un Trend in crescita

Lo sviluppo delle PWA è un trend che ha visto una forte crescita negli ultimi anni, grazie alla sempre più presente diffusione ed utilizzo di dispositivi mobile in diversi contesti nella vita quotidiana di ogni singolo individuo e alla necessità di usufruire di applicazioni performanti e veloci per la gestione dei vari servizi.



I vantaggi di sviluppare una Web App


 INDIPENDENTI DAGLI STORE 

Non essendo App Native non hanno bisogno di essere approvate dagli Store in particolare per Apple Store

che ha delle regole stringenti e difficili da soddisfare quando si sviluppa una applicazione BtoB



 PERFORMANCE

Le PWA permettono performance notevoli grazie alla memorizzazione locale dei file necessari al

loro funzionamento, permettendo una User-Experience notevolmente migliorata, grazie ai bassi tempi di

caricamento. 



 BASSI COSTI DI SVILUPPO


Si sviluppano app compatibili sia per IOS che per Android in un'unica soluzione,


abbattendo così i tempi, e sopratutto i costi, di sviluppo di un'app leggera e funzionale con tanto di features


 native come le notifiche push e accesso ai servizi di localizzazione. Uno sviluppatore web con qualche nozione 

in più è perfettamente in grado di sviluppare una web app.


 OFFLINE MODE


Le applicazioni PWA possono funzionare anche in modalità offline, grazie all'utilizzo del Service


Worker, il quale permette di effettuare query anche in assenza di una connessione

memorizzabile nello store locale per poi sincronizzarsi con il server non appena sarà disponibile una

connessione. 



 AGGIORNAMENTI AUTONOMI

Una Progressive Web App non necessita di nessun aggiornamento dagli

Store, perché l'aggiornamento ad una nuova versione avviene contestualmente al suo rilascio, quando viene

ricaricata, la PWA si auto aggiorna in quanto del tutto simile, per meccanismi a una comune pagine web.



I concetti chiave per le Progressive Web App



Cosa sono i Service Workers?


Il service workers è principalmente un proxy tra l'app e la rete internet, decide come rispondere alle richieste 


dell'app scegliendo di recuperare una risorsa fresca dal web oppure, se per esempio sei offline  recuperarne una

precedentemente scaricata. I Service Worker sono il core delle PWA, mette a disposizione che consente di


supportare esperienze offline offrendo agli sviluppatori il controllo completo dell'esperienza.



Cosa è il Manifest?


Il Manifest è un file JSON, nel quale andranno scritti alcuni parametri sull'aspetto delle PWA: 

l'icona da mostrare al momento del lancio, la lingua, il nome che comparirà sotto l'icona come le app native, i

colori, i carattere, l'orientamento dello schermo. È il Manifest che consente di installare l'applicazione nella

Home del device come se fosse un'app nativa




Alcune limitazioni

Ma quali sono i limiti di una PWA rispetto ad una comune app scaricata dallo Store? Per ora abbiamo visto solo quali sono i lati positivi di una progressive web app e purtroppo, ci sono anche alcuni lati negativi che possono influenzare le prestazioni del dispositivo sul quale si sta utilizzando la PWA da noi creata.

 LIMITAZIONI iOS

- Limitazione sulla cache del Service Workers al massimo di 50 MB 

- Accesso ad alcune funzionalità come Bluetooth, BLE Beacon e info sulla batteria.

- Non sono consentite accesso alle informazioni private come contatti, posizione in background e alle app    social native.

-  Accesso in App Payments negato.

 E INVECE SU ANDROID...

- È possibile archiviare più di 50mb

- Accesso Bluetooth per dispositivi BLE

- Riconoscimento vocale tramite Google Assistant 

- È possibile sincronizzare in background

Alla luce di questi punti, in fase di analisi e progettazione, ha senso prendere in forte considerazione la realizzazione della propria APP come le PWA? La risposta è: dipende!

Per quanto ci siano ovvi vantaggi in termini di prestazioni, compatibilità e costi, l'approccio PWA è a volte

abbastanza limitante in quanto alcuni dispositivi non permetteranno l'accesso ad alcune funzioni che le app

native offrono. In linea di massima, l'uso di un approccio PWA è fortemente consigliato laddove non sarà

necessario utilizzare l'applicazione per lunghi periodi o per sincronizzazioni in background (vedi limiti su iOS) ma

sicuramente può essere interessante utilizzare questo metodo di sviluppo per progetti dove sono richieste

applicazioni con un layout accattivante, semplicità di utilizzo, supporto tempestivo per gli aggiornamenti e

soprattutto tempi di caricamento e risposta molto ridotti.