Vediamo di fare chiarezza e di distinguere subito due concetti tra loro differenti ma troppo spesso confusi: creare una versione mobile di un sito web è diverso dal creare una App o una Web-App!
Cos’è una App?
Su ogni smartphone o tablet – sia esso Android, iOS o altro – è possibile installare delle appllicazioni (più comunemente note come App) le quali, esattamente come accade con i software su un comune computer, vanno ad estendere le capacità native del device incluse all’interno del sistema operativo.
Cerchiamo di chiarire meglio: quando acquistiamo un dispositivo – ad esempio un iPhone – questo ci viene consegnato con una configurazione di base che comprende diverse utilità che la casa madre – nel nostro caso la Apple – ha ritenuto opportuno includere nel OS; tra le funzionalità di questo tipo troviamo, ad esempio, un calendario, un’applicazione per il meteo, una calcolatrice, un blocco note, ecc.
Una volta acquistato il dispositivo, sia esso smartphone o tablet, ci viene offerta la possibilità di personalizzare queste features aggiungendone di nuove a seconda dei nostri gusti e delle nostre esigenze. Per fare questo è necessario collegarsi ad appositi marketplace – nel caso dell’iPhone ci collegheremo all’AppStore – navigare tra le varie Apps disponibili e scaricare quelle che ci interessanto. Queste ultime verranno installate sul nostro dispositivo andando, appunto, ad arricchirne le capacità.
Da un punto di vista tecnico si tratta – a tutti gli effetti – di software per nulla diversi – da un punto di vista filosofico, intendo – da quelli che siamo abituati ad acquistare ed installare sul PC di casa!
Cos’è una Web-App?
Possiamo definire una Web Application come una via di mezzo tra una App ed un sito web. In sostanza si tratta di pagine web evolute in grado di offrire funzionalità complesse simili a quelle fornite dalle comuni Appliazioni installate sul dispositivo. Ciò è possibile grazie ai linguaggi di scripting (sia lato client che lato server) che consentono di creare degli applicativi veri e propri (fruibili attraverso un browser) simili, anche dal punto di vista della interfaccia utente (UI), alle comuni App! (ciò è possibile grazie a tecnologie come AJAX che consentono di riprodurre in ambiente di Rete comportamente tipici delle interfacce software, ad esempio gestendo aggiornamenti dei contenuti senza effettuare alcun refresh di pagina).
Mentre una comune App è installata fisicamente sul dispositivo, una Web-App consiste – per farla semplice – in un link verso un applicativo remoto. Una simile soluzione implica lo svantaggio di richiedre, ai fini di un corretto funzionamento, la disponibilità di un accesso alla Rete ma ha il vantaggio di non incidere minimamente sulle capacità di storage del dispositivo e di essere sostanzialmente indipendente dalle capacità di calcolo dello stesso: la velocità di una Web-App dipende, infatti, dalla bontà della connessione alla Rete è dalle performances del server remoto nell’offrire l’elaborazione richiesta dall’utente.
Un altro vantaggio delle Web-App è la loro indipendenza dai marketplace e la compatibilità con una pluralità di OS: uno sviluppatore che si avventura nella realizzazione di applicativi per dispositivi mobili dovrà, necessariamente, accettare le regole (a volte molto rigide) fissate dai vari store ed inoltre dovrà creare diverse applicazioni per ogni tipo di sistema operativo mobile! Sviluppando una Web-App, viceversa, non è necessario appoggiarsi ad uno store ne tantomeno crearne diverse versioni per i vari OS. Una web-app ben fatta è (più o meno) universale e può essere utilizzata su qualsiasi smartphone o tablet.
Web-App e siti ottimizzati per dispositivi mobili
Lo abbiamo già detto, ma ritengo opportuno precisarlo nuovamente: una Web-App è un sito web evoluto quindi, in un certo senso, esiste una forte legame di parentela tra un comune sito web ottimizzato per dispositivi mobili ed una Web-App. Detto ciò è bene chiarire fin da ora che lo scopo di questa guida non è quello di insegnare come sviluppare applicativi complessi mediante linguaggi di scripting, bensì è quello di guidare il lettore in un percorso verso la creazione di semplici pagine web ottimizzate per la fruizione mediante smartphone. Eventuali funzionalità avanzate sono lasciate quindi, al di la di alcuni accenni, alle abilità ed alle conoscenze del lettore.