Si sa, a ciascuno è dato di sapere ciò che è di propria competenza professionale, un medico sa quando è opportuno somministrare un antibiotico o un semplice sciroppo per la tosse. Così come il buon fornaio che conosce le differenze tra le farine, le loro caratteristiche e sa come valorizzarle.
Così, anche chi si occupa di sviluppare o proporre soluzioni informatiche deve necessariamente conoscere le differenze alla base delle WebApp, PWA e delle App Mobili ibride.
Web App
Tutti conosciamo cos’è un sito web. Fino a circa 10/15 anni fa i siti web erano semplici siti vetrina, solo qualcuno osava creare qualcosa di più complesso: gli e-commerce.
Bene, considera che tutto quello che prevede un’interazione più evoluta del semplice ipertesto è equiparabile ad una WebApp.
Ma quali sono i criteri che ti fanno riconoscere quando sei in presenza di una WebApp?
- Il sito ha memoria delle operazioni che svolgo e me le presenta nella medesima forma o in forma elaborata al bisogno?
- Posso svolgere un azione che si conclude con uno scopo?
- Quando ritorno in un sito per una seconda o terza volta, il sito mi permette di riprendere le mie operazioni da dove le avevo lasciate?
Ecco se un sito web risponde in modo positivo a queste tre domande siamo in presenza di una WebApp.
Alcune WebApp hanno dei nomi specifici:
- e-commerce: una WebApp predisposta alla vendita on-line
- CRM (Customer Relationship Management): una WebApp predisposta alla gestione del rapporto tra azienda e cliente
- CMS (Content Management System): una WebApp che permette di gestire contenuti on-line. Le più conosciute sono WordPress, Joomla! e Drupal, ma fanno parte di questo elenco anche Medium, Quora e StackOverflow per esempio.
App Mobili
Tutti noi abbiamo uno smartphone, e tutti gli smartphone hanno almeno un’icona sulla home. Per semplificare diciamo che ciascuna icona corrisponde ad un’App, anche se poi alcune App aggiungono collegamenti alla home per consentire l’accesso rapido ad alcune sezioni dell’App. Ma ci basta sapere che ciascuna icona corrisponde ad un’App installata nel dispositivo.
Quali sono gli elementi che caratterizzano un’App Mobile?
La prima caratteristica di un’app mobile è che disponibile almeno in uno dei due store: Apple Store e Play Store. Se così non fosse allora non ci troviamo in presenza di una vera e propria app mobile.
Un’App mobile a differenza di un sito web e quindi di una WebApp ha la capacità di accedere alle caratteristiche ed alle funzionalità native del dispositivo, come per esempio l’elenco dei contatti, la galleria fotografica o i documenti su file system. Ovviamente queste funzionalità sono disponibili solo a seguito di autorizzazione da parte degli utenti.
Si da per scontato inoltre che un’App mobile non abbia necessità di una connessione ad internet per avviarsi, magari può essere necessaria per lo svolgimento di alcuni compiti propedeutici al suo corretto funzionamento ma di fatto l’App mobile risiede completamente sul dispositivo dell’utilizzatore, una volta installata.
Progressive Web App (PWA)
Le PWA sono l’ultima invenzione e fondono insieme le caratteristiche di una WebApp con le funzionalità di un’App mobile.
In pratica è una WebApp che sfruttando una serie di funzionalità dei browser, permette di eseguire l’app sul dispositivo anche in assenza di connessione ad internet. Inoltre la PWA può essere installata sul dispositivo proprio come fosse un’app, senza però passare dagli store di Apple e di Google.
Ci sono diversi punti di forza di una PWA ed altrettanti punti di svantaggio. Avendo consapevolezza di essi si può valutare quale sarà la strada più comoda da percorrere nonchè la più conveniente per il committente.
Punti di forza
- L’app è di fatto una WebApp, quindi funzionerà sia in un dispositivo mobile che su un computer desktop. È sufficiente che l’utilizzatore disponga di un browser di ultima generazione.
- Funzionerà in modalità offline, una PWA per sua natura deve poter svolgere buona parte del suo compito senza necessità di una connessione ad internet, così come qualsiasi altra App installata sul proprio smartphone. Tramite dei meccanismi specifici (WebWorkers) avrà cura di aggiornare le informazioni disponibili sul dispositivo e comunicare con un eventuale server per trasmettere le dovute modifiche.
- Una PWA, grazie ad un completo supporto da parte di Google Chrome, di un quasi totale supporto da parte di Apple Safari e di un ottimo supporto da parte di Edge (che fondamentalmente implementa Chromium: la versione OpenSource di Google Chrome) può essere installata sul dispositivo mobile (e sul desktop).
- In caso di aggiornamento strutturale non bisogna attendere tempi più o meno lunghi di approvazione da parte degli store, sarà sufficiente “invalidare la cache” e la nuova PWA rimpiazzerà la vecchia versione anche nel dispositivo dell’utente al primo utilizzo.
Punti di svantaggio
- Se necessiti di esecuzione di codice in background (per esempio monitor della posizione in background), sei costretto ad affidarti ad un’app. Infatti le PWA, pur eseguendo un ServiceWorker in background, la vita di questo processo è limitata all’esecuzione dell’app. Tuttavia resterà ancora in vita per un tempo limitato al completamento dell’operazione in corso anche dopo la chiusura dell’app.
Esistono dei meccanismi per continuare l’esecuzione del worker anche se la scheda del browser risulta chiusa, per esempio tramitesetInterval
osetTimeout
, ma non è un modo certo di eseguire del codice in background. - Non è possibile acquisire in background la posizione del dispositivo (anche se l’utente ha dato autorizzazione al tracciamento). Il problema non è tanto nel tracciamento mentre la PWA è in esecuzione quanto nell’impossibilità del Service Worker di accedere all’oggetto
navigator.geolocation
. - Le PWA hanno raggiunto un ottimo supporto sui vari sistemi solo nel 2019 ma le notifiche push web non sono state ancora rese disponibili in Safari mobile.
- Non è possibile accedere a tutte le funzionalità native ma solo a quelle che il browser in uso consente, per esempio, la rubrica contatti, non sarà accessibile attraverso una PWA.
Conclusione
Solo con una chiara definizione delle funzionalità di un progetto puoi valutare quale soluzione è più conveniente adottare per il Committente.
Considera inoltre che può essere strategicamente più conveniente realizzare una WebApp che poi diventerà una PWA e che infine potrebbe diventare un’App Mobile.
In questo articolo introduttivo ti ho spiegato alcune delle differenze che ci sono tra le varie soluzioni, nelle prossime settimane ti spiegherò come trasformare una WebApp in una PWA e una PWA in un’App Mobile.
Grazie per essere arrivato alla fine di questo articolo. Se sei d’accordo con quanto ho scritto condividilo sui social così mi dimostrerai il tuo gradimento; se invece non sei d’accordo, lascia un commento e intavoliamo una discussione costruttiva.