Differenza tra lo sviluppo app con approccio Web, PWA e ibrido

Differenza tra lo sviluppo app con approccio Web, PWA e ibrido

Approccio Web e PWA

Lo sviluppo web è cambiato molto attraverso gli anni. La prima rivoluzione l’ha portata AJAX, comparso nei primi anni 2000, trasformando il web, da un insieme pagine statiche, a una esperienza dinamica. Gli utenti si sono abituati a non dover più aspettare decine di secondi per caricare una pagina, ma di interagire con essa in tempo reale, come ad esempio effettuare lo zoom e muoversi trascinandp il mouse, all’interno di una mappa di Google.

Sfortunatamente, i progressi raggiunti dal Web in versione desktop non si sono tradotti efficacemente nel mondo mobile. Infatti gli utenti di smartphone e tablet utilizzano i servizi sotto forma di applicazioni scaricate dagli store, evitando il più possibile i browser, anche se molte volte il servizio è disponibile in entrambe le piattaforme.

Una ricerca di ComScore riporta infatti che gli utenti trascorrono il 10% del loro tempo online sui browser, mentre il 90% all’interno delle app, per la migliore user experience, le notifiche push, e la facilità di trovarle sulla home.

Nonostante questi fattori, le soluzioni web stanno conquistando terreno nel mondo dello sviluppo mobile negli ultimi anni.

L’utilizzo delle applicazioni è estremamente concentrato: gli utenti spendono il 50% del loro tempo in una specifica app, il 78% nelle 3 app personalmente più utilizzate, e il 97% nelle 10. Inoltre più del 50% degli utilizzatori di smartphone e tablet negli Stati Uniti ha dichiarato di non scaricare alcuna nuova app al mese.

Gli utenti, alla luce di questi numeri, installano e usano poche app e oggi è difficile ritagliarsi un posto fra esse, visti i colossi coi quali bisogna competere. In contrasto a questi dati però, i siti web visitati da mobile sono oltre cento per ogni mese, per la potenza e la facilità offerta dai link, che spostano la navigazione da un sito all’altro, all’interno del browser. Su questo dato fanno leva le applicazioni mobile sviluppate con approccio Web.

Tecnicamente, le applicazioni Web funzionano senza essere installate nel dispositivo ma sono eseguite nel browser, proprio come un sito web. Presentano tutte le caratteristiche di un sito, come l’url, i link, il modello client-server, i linguaggi Javascript, CSS e HTML e la loro interfaccia è adattata alle dimensioni del dispositivo su cui viene eseguito il browser. Il peso computazionale e la memoria utilizzata sul dispositivo saranno estremamente basse, in quanto il grosso del lavoro è svolto dai server di back-end. Questo tipo di applicazioni non saranno scaricabili dagli store, ma come riportato dai dati precedenti, questo potrebbe non essere più un problema, visto il poco interesse del pubblico a nuovi download.

L’approccio nativo ha offerto negli anni la soluzione migliore per lo sviluppo app, per la migliore esperienza d’utilizzo che offrono. Quando vengono aperte, esse si caricano più velocemente, di solito lavorano anche offline, possono mostrare notifiche, sincronizzarsi in background e avere accesso ai sensori, come fotocamera e accelerometro. Ma la portata è piuttosto limitata, richiedendo una versione diversa per ogni piattaforma. Il web dal canto suo è più protetto perché il suo modello è più rispettoso della privacy, rispetto ai protocolli di comunicazione proprietari delle app native, ma finché il web non è riuscito a offrire l’accesso alle funzionalità delle app native, la sua raggiungibilltà non è stata sufficiente per imporsi come tecnologia principale.

L’obiettivo delle web app oggi è quello di coniugare le abilità e l’esperienza a cui gli utenti sono abituati sulle app native, nel web, sfruttando i punti di forza di entrambi.

Per questo, dal 2017, è stato introdotto il concetto di PWA, le Progressive Web App, che stanno iniziando a diffondersi. Esse puntano a raggiungere la qualità del servizio offerto dalle app native, mantendo un approccio web.

Possiamo definire le PWA come semplici applicazioni web specializzate all’utilizzo mobile, concentrate a migliorare alcuni fattori:

  • Velocità: migliorano il caricamento e la fluidità delle app web.
  • User Experience: permettono di installare un’icona sulla home e accedere all’applicazione senza utilizzare il Forniscono un’interfaccia a schermo intero eliminando le funzionalità di contorno dei browser.
  • Integrazione: offrono l’accesso all’hardware a livello del nativo. Con le PWA è possibile interagire con i sensori, inviare notifiche push, utilizzare API per pagamento, e interfacciarsi con le altre app.
  • Affidabilità: è gestita la sincronizzazione delle app anche offline, permettendo all’utente di utilizzare il servizio anche in caso di connessioni lente o assenti, evitando le spiacevoli attese delle pagine Le PWA si servono dei Service Worker, degli script che lavorano in background alle sessioni web e si occupano della sincronizzazione dei dati in caso di connessioni lente o assenti, fornendo servizi di caching per l’accesso ai dati.

Infine, le PWA sono un’ottima soluzione al giorno d’oggi e stanno aumentando il numero di aziende che scelgono di sviluppare la propria, con ottimi risultati, come Twitter, Pinterest, Trivago e Booking.

Differenza tra lo sviluppo app con approccio Web, PWA e ibrido

Approccio ibrido

Un’altra solzione per creare un’applicazione multipiattaforma è data dall’utilizzo dell’approccio ibrido.

Il termine ibrido sta ad indicare una via di mezzo, tra il mondo nativo e quello delle web app. L’idea che sta alla base è quella di utilizzare dei componenti nativi in grado di visualizzare pagine web, che non sono altro delle web app con funzioni base, che si interfacciano alle funzionalità del device tramite il contenitore nativo. Lo sviluppatore deve quindi creare l’applicazione seguendo i processi di una qualsiasi web app, con i linguaggi HTML, e Javascript.

Per visualizzare i contenuti le applicazioni ibride utilizzano le WebView (che possono cambiare nome a seconda dell’ OS), che sono componenti nativi in grado di effettuare il rendering del codice e visualizzare la grafica all’interno di un applicazione.

L’interfaccia con il sistema sottostante invece è assegnata ai cosiddetti Wrapper, diversi per ogni sistema operativo, che interpretano il linguaggio Javascript e l’interfaccia con l’hardware. I Wrapper possono essere scritti dal programmatore stesso, oppure ci si può servire di framework già esistenti che forniscono le API Javascript necessarie all’applicazione per poter accedere alle funzionalità di basso livello.

Esistono diversi framework che si occupano di gestire l’interfaccia con il dispostivo, evitando questi problemi al programmatore, che può concentrarsi allo sviluppo del codice comune dell’applicazione. I framework sono più o meno specializzati a gestire i vari serivizi dei dispositivi e se necessario, possono essere utilizzati insieme, per estendere le funzionalità.

Le applicazioni ibride presentano quindi una valida scelta per lo sviluppo multipiattaforma, tenendo conto che i principiali framework, come Ionic, Cordova e PhoneGap, hanno ormai una dettagliata documentazione e una community molto attiva, essendo sul mercato da qualche anno.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

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