Come utenti raramente ci interessa sapere se l’app che stiamo usando sia una web app o un’app nativa e, se gli sviluppatori sono stati bravi, non dovremmo neanche porci il problema.
Se però volete passare dall’altro lato della barricata per necessità o curiosità vi riassumiamo le principali differenze tra le due famiglie di app.
Una breve definizione
Le app native (o client-side application) sono programmi scritti per eseguire il lavoro sul device su cui sono installati; le web app sono accessibili tramite il browser del proprio dispositivo mobile e pertanto non necessitano di essere scaricate e installate. Si potrebbero assimilare a un sito web approntato su misura per la navigazione da mobile, ciò significa che il grosso del lavoro sarà svolto dal sito mentre al dispositivo non resterà che occuparsi di mostrare il risultato.
Esiste poi la terza via: sviluppare delle app native che richiamano al loro interno la web app tramite una WebView.
Differenze nello sviluppo
Le app native devono essere installate sul dispositivo su cui si vuole farle girare, pertanto devono essere sviluppate specificamente per la piattaforma (Android, iOS, Windows) di destinazione.
Ogni sistema operativo ha il suo SDK e di conseguenza il suo linguaggio: Java per Android, Objective C per iOS e l’ambiente .NET per Windows Phone solo per citare quelli attualmente più diffusi.
Le web app invece possono essere scritte in qualsiasi linguaggio piaccia allo sviluppatore, purché il prodotto finale consegnato al browser del client sia HTML5+CSS3+Javascript.
Dato che ogni sistema ha il suo browser (e non solo) in questo caso lo sviluppatore dovrà fare attenzione alle differenze di comportamento e interpretazione della pagina.
Installazione e aggiornamento
Come dicevamo le app native vanno scaricate e installate tramite lo store specifico del sistema operativo.
Pertanto, ogni aggiornamento implica per l’utente un nuovo download dell’app.
Al contrario, per le web app e la loro intrinseca natura, non c’è necessità di installazione e aggiornamento perché la pagina cui l’utente accede è sempre l’ultima versione disponibile.
A questo punto potrebbe sembrare che chi scrive app native si diverta a perdere tempo, in realtà le web app hanno alcuni limiti.
Limiti delle web app
Attualmente tramite le web app non si ha accesso completo all’hardware (in alcuni casi questo potrebbe essere un punto a favore…) e pertanto alcune funzionalità potrebbero essere precluse.
In linea generale potrebbero essere meno performanti e responsive rispetto ad un app nativa perché devono restare in attesa dei risultati dell’elaborazione remota e una volta arrivati il client deve anche interpretare la parte di scripting della pagina.
Infine, se c’era bisogno di sottolinearlo, le web app non possono funzionare offline, a meno che non si implementino meccanismi di caching dei dati.
Qual è la via migliore?
A questa domanda non c’è una risposta.
Nella scelta della strada da intraprendere bisogna tenere conto di diverse variabili: il tempo a disposizione per lo sviluppo (ed eventualmente per l’apprendimento del linguaggio di programmazione e dell’SDK), quali obiettivi si vogliono raggiungere, su quanti e quali dispositivi deve funzionare, quali funzionalità deve implementare.