Indice
- Cosa sono le Progressive Web App?
- Vantaggi delle PWA rispetto alle app native
- Le sfide delle applicazioni web progressive
- Conclusione Applicazioni web progressive
Le applicazioni web progressive sono state pubblicizzate già da diverso tempo. Da quando il termine è stato coniato dall'ingegnere di Google Alex Russell nel 2015, molti le hanno definite il futuro dello sviluppo delle app e ne hanno continuamente enumerato i vantaggi, eppure, nonostante il futuro promettente, questa tecnologia è stata parzialmente accantonata.
È stato Google a sviluppare e rendere popolare il concetto di PWA (Progressive Web App). Ma cosa sono le PWA?
Cosa sono le Progressive Web App?
Le Progressive Web Apps o PWA sono una combinazione di un'applicazione web e di un'applicazione nativa. È un sito web che ha tutte le caratteristiche di un'applicazione nativa, una fusione dei migliori elementi di entrambe.
È progettata per funzionare e avere l'aspetto di un'app nativa e fornire un'esperienza utente molto simile a quella di un'app nativa, ma allo stesso tempo è sviluppata per funzionare offline e con reti di bassa qualità, può inviare notifiche push ed è facile da installare.
Vantaggi delle PWA rispetto alle app native
Il dibattito su PWA e app native è in corso da tempo. Anche se le PWA non possono sostituire le app native, hanno alcuni notevoli vantaggi.
1. Installazione semplice / App Store / Homescreen
Le PWA fornite dall'operatore possono essere utilizzate immediatamente dopo essere state richiamate. Possono anche essere installate localmente sullo smartphone. Nel processo, l'icona dell'applicazione può essere aggiunta alla schermata iniziale. Gli utenti possono quindi difficilmente distinguere se si tratta di un'app nativa o di una PWA.
2. Spazio di archiviazione inferiore
Le PWA hanno una dimensione di memoria inferiore dell'80-90% rispetto alle app native e vengono aggiornate automaticamente tramite il browser. Ciò significa che non è più necessario caricare gli aggiornamenti, che richiedono molto tempo. Gli utenti possono accedere rapidamente alle nuove funzioni e agli aggiornamenti. Inoltre, non è necessaria la convalida tramite l'App Store, il che accelera notevolmente il rilascio di nuove versioni.
3. Trovabile nei motori di ricerca
Le PWA possono essere indicizzate da Google come i siti web e quindi hanno un collegamento diretto con i motori di ricerca. Invece di dover competere per attirare l'attenzione negli app store e pubblicizzare le app, le PWA sono visibili attraverso la classica SEO (Search Engine Optimization) o SEA (Search Engine Advertising).
4. Service Worker
Una caratteristica particolare delle PWA è la moderna tecnologia del browser service worker. Il service worker agisce come un servizio in background, come un'interfaccia di comunicazione tra il browser e il server. Il vantaggio principale è che può eseguire attività in background anche quando l'applicazione stessa non è in esecuzione. Ad esempio, può eseguire autonomamente query di posizione in background senza dover ricaricare il sito web.
Il service worker può anche essere istruito a rispondere alle richieste di rete in uscita dai dati memorizzati nella cache del browser. In questo modo, è possibile realizzare anche una funzionalità offline delle PWA. Utilizzando i service worker, si possono realizzare anche le cosiddette notifiche push, che raggiungono l'utente anche se il sito web non è attivo. Come per le app native, gli utenti ricevono notifiche sullo schermo dello smartphone non appena si verifica una novità nell'app.
5. Minori sforzi di sviluppo e manutenzione
Rispetto alle app native, lo sforzo di sviluppo delle PWA è notevolmente inferiore. La programmazione una tantum per tutti i dispositivi finali con il relativo supporto del browser riduce anche il lavoro di sviluppo e manutenzione.
Uno dei vantaggi più evidenti delle PWA è che possono essere facilmente installate dal sito stesso, a differenza di un'app nativa che deve essere scaricata specificamente da un app store. Le Progressive Web App richiedono inoltre meno spazio di archiviazione sul dispositivo rispetto alle app native, che sono generalmente file di dimensioni maggiori. Un importante vantaggio delle PWA rispetto alle app native è che costano molto meno in termini di sviluppo e manutenzione rispetto a un'app nativa. Un vantaggio delle PWA rispetto a un'app nativa è che, a differenza di quest'ultima, sono indicizzate mobile-first e aiutano l'ottimizzazione dei motori di ricerca.
Le sfide delle applicazioni web progressive
Sebbene la Progressive Web App offra molti vantaggi, presenta anche degli svantaggi. Di seguito sono elencate alcune delle sfide che si possono incontrare nell’implementazione di PWA.
1. Supporto limitato del browser per iOS
Le Progressive Web App funzionano solo su iOS a partire dalla versione 11.3 in poi e presentano molti problemi tecnici quando vengono eseguite su Safari. Si tratta di una sfida importante per le PWA, dato che il 51% del mercato dei browser negli Stati Uniti è dominato da Safari. Questo fa sì che una buona parte degli utenti non voglia utilizzare le PWA e scelga altre alternative.
2. Perdita di traffico dall'app store
Sebbene sia un vantaggio che le PWA non debbano affrontare il lungo processo di download delle app come le app native, esse perdono anche una grande fetta di utenti che cercano le app principalmente nell'app store. Inoltre, quando scarichiamo un'applicazione dall'app store, siamo sicuri al 100% che non comprometterà la nostra privacy o causerà danni al nostro dispositivo. Lo stesso non si può dire per l’installazione di una PWA da una fonte o da un sito web sconosciuto.
3. Accesso impossibile all'hardware e al software del dispositivo.
A differenza delle app native, le PWA non possono accedere a molte funzioni del dispositivo, come il Bluetooth, la fotocamera e la memoria del telefono. Di conseguenza, le PWA non possono svolgere molte delle funzioni possibili invece con le app native.
4. Consumo della batteria
Le applicazioni web progressive possono essere molto veloci e offrire i migliori tempi di coinvolgimento e caricamento, ma con tutte queste caratteristiche hanno lo svantaggio di scaricare rapidamente la batteria del dispositivo. Le PWA consumano più batteria rispetto alle applicazioni native perché sono scritte in codice web di alto livello, quindi i telefoni devono lavorare di più per interpretare il codice. Gli utenti che notano una riduzione dell'autonomia della batteria sono più propensi a non utilizzare questo tipo di app se hanno bisogno di prolungare la durata della batteria.
5. Le funzionalità delle PWA sono ancora relativamente nuove per la maggior parte degli sviluppatori.
Anche se Google ha annunciato le Progressive Web Apps nel 2015, si tratta ancora di una tecnologia relativamente nuova. E questo tocco di novità rappresenta un'alta barriera all'ingresso per molti sviluppatori. Poiché può essere molto difficile lavorare in un ambiente in cui non esistono ancora una comunità, un'esperienza e delle best practice comuni, non è facile per i nuovi arrivati farsi strada. Ma sono proprio queste nuove persone ad essere necessarie per costruire una comunità fiorente intorno allo sviluppo delle PWA. Servono quindi più persone che non abbiano paura di fare il primo passo.
Fortunatamente, Google si sta impegnando molto per promuovere le Progressive Web Apps. Formando le persone a lavorare con strumenti come le moderne WebAPI, si spera che un numero sempre maggiore di sviluppatori abbracci finalmente queste nuove funzionalità.
6. Funzioni mancanti sui dispositivi nativi
Come sviluppatori, vogliamo utilizzare tutte le capacità di un dispositivo. Indubbiamente, al momento non possiamo farlo con le Progressive Web App. Mancano ancora diverse funzioni per i dispositivi nativi. Ad esempio, non è possibile accedere alla clipboard o al file system all'interno della PWA, anche se questo potrebbe essere un requisito importante per molte app. La mancanza di strumenti adeguati rende lo sviluppo delle app ancora più difficile. Questo, ovviamente, ostacola l'integrazione complessiva delle Progressive Web App.
Conclusione Applicazioni web progressive
Anche se i vantaggi delle PWA sono molti, possiamo dire apertamente che le Progressive Web Apps sono ancora una tecnologia che non si è ancora molto affermata. La ricchezza di funzioni e l'esperienza complessiva dell'utente sono abbastanza buone, ma ci sono ancora molte cose da sistemare e sviluppare. La comunità degli sviluppatori deve ancora crescere, e con essa le competenze e le best practice consolidate. Inoltre, la questione della distribuzione è una sfida importante per la diffusione delle Progressive Web App. Aspetti come la facilità di sviluppo e l'esperienza utente servono a poco se poi le applicazioni web non arrivano all'app store perché nessuno conosce la vostra applicazione, non importa quanto sia buona.