Web app, la giusta via di mezzo tra sito e app mobile
Cos’è una web app? E quali differenze ci sono con le app mobile? Entriamo nuovamente nel mondo del front end per esplorare questo affascinante aspetto in modo più approfondito.
Continua l’analisi sul front-end iniziata con l’intervento di Augusto Montoni, con un focus più dettagliato sulle web app, argomento di cui Francesco Pasquini, senior Front-End Developer, si è occupato nel suo intervento durante la “mashfrog digital university”, il percorso formativo organizzato da mashfrog per condividere le competenze delle varie business line del Gruppo.
Cosa sono le Web Application?
La Web Application è un software che lavora esclusivamente lato client su tutti i dispositivi utilizzabili. Si tratta di un programma che viene scritto da zero e che può “girare” online, offline o tramite una Intranet aziendale. In sostanza è una via di mezzo tra un sito web e un’app mobile, con la differenza che la web app non risiede fisicamente in un dispositivo, ma sul web e pertanto non necessita di essere scaricata o installata per essere utilizzata. Le Web Application sono nate diversi anni fa e rispondono alle stesse esigenze per cui sono nate le app: facilitare la vita dell’utente, in questo caso evitando di scaricare software o tool e appesantire il pc.
Per cosa non sono adatte?
A questo punto Francesco ci elenca tre esigenze comunicative per cui le web app non sono la soluzione più adatta, secondo la sua esperienza, pur comunque specificando che questa tecnologia può essere applicata anche in questi casi.
- Sito vetrina. Non avrebbe senso creare una web app per realizzare un sito vetrina, che generalmente è statico e ha poche funzioni di backend. Inoltre il codice sorgente di una web app è molto breve e non traccia alcun contenuto, quindi è poco funzionale da un punto di vista seo.
- Blog, giornali e documentali. A questo scopo esistono i CMS, già preimpostati per realizzare questo tipo di prodotti con un effort molto inferiore rispetto a quello richiesto da una web application.
- PoC. Le web app non sono sicuramente adatte per realizzare demo da presentare ai clienti, perché sarebbe inutile e dispendioso sviluppare funzionalità senza sapere se saranno utilizzate o meno.
Per cosa sono adatte?
Vediamo invece gli scopi principali per i quali le web application risultano essere la tecnologia migliore da utilizzare.
- Dashboard con grafici e tabelle
- Interazioni con mappe
- Gestionali aziendali
- Attività commerciali (e-commerce)
- PWA (Progressive Web App)
In generale, le web application sono adatte per tutto ciò che non è “standard” e in qualsiasi applicativo in cui il cliente richiede un alto livello di customizzazione e vuole essere indipendente nell’utilizzo delle diverse funzionalità. Le PWA invece nascono per risolvere il problema delle web app che non funzionano più quando si è offline: si tratta di applicazioni web che lavorano come se fossero delle app da mobile, ma con il vantaggio di funzionare anche offline. Sono tuttavia delle tecnologie abbastanza innovative e ancora non consolidate, per le quali non esistono best practice e standard condivisi utili per implementarle al meglio.
Pro e contro delle web app
Francesco ci elenca i punti di forza e di debolezza delle web app, partendo proprio dai principali vantaggi.
PRO
- Multilayer. Si definisce multilivello un’architettura che separa la parte di front end da quella di back end e di database, permettendo di intervenire nel tempo su uno dei tre livelli senza interferire sugli altri.
- Codice manutenibile. Questo aspetto dipende molto da come lavora il programmatore, ma se l’impostazione del lavoro è condivisa con tutto il team, il codice può essere lavorato anche da persone diverse da quella che lo ha realizzato.
- Community NPM. Questa community permette agli sviluppatori di condividere le proprie librerie, permettendo agli altri di scaricarle e installarle sulle proprie web app, facilitando in tal modo il lavoro di tutti.
- Non occupano memoria sui device. Come detto prima, le web application non devono essere installate e aggiornate e quindi non occupano memoria, perché si appoggiano alla cache del browser.
CONTRO
- Rendering per SEO. Come già accennato, le web app utilizzano un codice che non viene letto dai motori di ricerca e pertanto non permette di default l’ottimizzazione dei contenuti da un punto di vista seo.
- Effort ed esperienza elevati. Per sviluppare una web app è necessario che la risorsa segua un percorso formativo specifico o comunque abbia una certa esperienza nel settore.
- Complessità di alcune funzionalità, come la camera, il gps e il bluetooth che invece sono più semplici da far funzionare con le app.
- Sicurezza. Più che un punto di debolezza è un dato di fatto: gli aspetti relativi alla sicurezza non possono essere mai delegati al front end, ma riguardano il back end.
Uno sguardo al futuro
In conclusione, Francesco ci mostra quelle che possono essere le evoluzioni future delle web application, a cui mirare per ottenere programmi sempre più sicuri e certificati.
- OOP, Object-Oriented Programming, una tecnologia che dà più solidità all’applicazione e meno bug.
- Scalabilità, che permette di integrare nuove funzionalità e dare lunga vita all’applicativo.
- Framework LTS, ossia framework di supporto a lungo termine.
- Conversione in APP. Sono sempre di più i tool che permettono di convertire le web app in app, quindi in futuro sarà sempre più possibile creare, con un codice solo, sia web app consultabili su un sito che app mobile scaricabili da uno store su un qualsiasi dispositivo.
- Microfrontends, usati soprattutto per grandi progetti a cui partecipano diverse aziende, a cui è quindi possibile fornire microfrontends differenti al fine di fornire una maggiore libertà di scelta ai diversi team.