Tecnologia e innovazione al servizio delle aziende

Mobile Application

Gli smartphone e i tablet di ultima generazione hanno una potenza di calcolo equivalente a quelle di personal computer di qualche anno fa. I produttori di tecnologia fanno uscire di continuo nuovi strumenti che possono essere utilizzati in modo proficuo anche in attività non ludiche.Ad esempio, la pubblica amministrazione di una grande città, potrebbe dotare i messi comunali e la polizia municipale di un palmare evoluto o di un tablet che sostituirebbero in toto gli strumenti cartacei. Tramite il palmare gli “agenti sul territorio” potrebbero essere informati in tempo reale delle condizioni del traffico, del verificarsi di incidenti, di una verifica urgente da fare presso il cittadino… allo stesso modo, un vigile, constatando un’infrazione al codice della strada, potrebbe utilizzare la fotocamera integrata nello strumento per riprendere (come prova) l’infrazione e inviare la notifica direttamente ai server del comune…. il tutto in modo automatico, alnche la localizzazione dell’indirizzo avverrebbe tramite il GPS integrato nello strumento.
Come altro esempio, il promotore finanziario di una grande banca, o di un’agenzia di assicurazioni, potrebbe recarsi direttamente a casa dei propri clienti e mostrare lo stato dei loro investimenti e delle polizze direttamente sullo schermo di un iPad ed eseguire con loro le variazioni necessarie… allo stesso modo, i clienti finali, potrebbero eseguire le operazioni di home banking direttamente sul loro smartphone, in qualsiasi luogo essi si trovino (a patto di avere la linea telefonica cellulare attiva)…
mobile01
Lo sviluppo di applicazioni per piattaforme mobili, segue, in linea di massima, lo stesso approccio adottato per quelle tradizionali … ma con qualche differenza sostanziale:
  • le applicazioni “mobile” hanno modalità di utilizzo e di interazione con l’utente differenti rispetto a quelle tradizionali (dimensioni dello schermo, gesture, …);
  • i tempi e i luoghi di utilizzo sono differenti (mobilità, orari serali, utilizzo in luoghi affollati, …);
  • sono disponibili nuove funzionalità quali, ad esempio, le funzioni di geolocalizzazione, le funzioni di tracciamento della posizione spaziale, la realtà aumentata, gli strumenti web 2.0, il Cloud Computing…
Le nuove funzionalità devono essere usate in modo accorto per dare valore aggiunto all’applicazione. Molte aziende, infatti, inseriscono queste funzionalità solo perché sono “la moda del momento” realizzando applicazioni poco usabili e che non rispecchiano le esigenze dell’utente.
La maggior parte delle applicazioni esistenti non è facilmente portabile sulle piattaforme mobili; in alcuni casi è più semplice riprogettare l’applicazione tenendo conto delle nuove possibilità e cercando di riutilizzare la maggior parte dei servizi esistenti.
È molto importante, già in fase di raccolta dei requisiti delle applicazioni, tenere conto delle caratteristiche delle attuali piattaforme mobili per evitare di vendere al cliente soluzioni impossibili da realizzare.
 Le tecnologie di sviluppo per piattaforme mobili sono in continua evoluzione e ogni giorno nuovi framework vengono introdotti e altri vengono dismessi. È necessario progettare le applicazioni in modo tale da limitare gli impatti derivanti dall’introduzione o dalla sostituzione di una tecnologia di sviluppo con un’altra e, se possibile, per mantenere la compatibilità con piattaforme eterogenee.
Le tecnologie e i sistemi operativi utilizzati sui vari modelli (SymbianBlackBerryWindows Phone, , Android, Apple iOS,…) non sono compatibili fra loro e richiedono la scrittura di codice specifico per ognuna di essi. Anche l’utilizzo del browser web è differente su vari modelli quindi, non è pensabile la realizzazione di una web application universale che funzioni allo stesso modo sui vari dispositivi. Il supporto del nuovo HTML5, infatti, dipende pesantemente dal motore del browser adottato sul dispositivo (es. webkit o nativo), dalla versione dello stesso e dalla versione del firmware installato. Per ovviare a questi problemi è possibile appoggiarsi a framework multipiattaforma (quali ad esempio JQuery Mobile, Dojo, Sencha Touch, Appcelerator Titanium,…) che consentono di astrarre dai singoli sistemi. Il problema di tali framework e che, a vantaggio della portabilità, difficilmente supportano l’integrazione con le funzioni native del dispositivo (accelerometro, bussola, gps, webcam,…).
In alternativa. è possibile utilizzare strumenti per il Model Driven Development (MDD) che consentono di definire la user interface tramite un modello indipendente dalla piattaforma e, tramite l’utilizzo di appositi generatori, trasformarlo in una Rich Mobile Application specifica per il singolo dispositivo. In tal modo, a fronte di un unico back-end a servizi, condiviso fra tutti i client, è necessario descrivere il solo modello di visualizzazione per ottenere, in modo quasi completamente automatico, il codice specifico per i vari sistemi operativi mobili.  L’utilizzo di tecnologie basate su RESTXML e Web Services consente, inoltre, di realizzare applicazioni altamente interoperabili e di aumentare la compatibilità fra i vari dispositivi. Il tal caso, i sevizi di backend, possono essere inseriti in un’infrastruttura SOA e condivisi con gli altri sistemi aziendali.
mobile02

Ho seguito, come hobby personale, l’evolversi dei dispositivi mobili dal mio primo Texas Instrument Avigo del 1997 fino all’attuale iPad, passando per diversi dispositivi Windows Mobile, Palm e Symbian. Tra questi quello che ho gradito di più è stato lo Sharp Zaurus SL-C3000, con sistema operativo Linux, sul quale ho speso diverse nottate a personalizzare il sistema operativo. Per ognuno di essi ho sviluppato diverse applicazioni per uso personale integrandole con i sistemi informativi dell’azienda per cui lavoro per l’automazione dell’attività di consuntivazione mensile e per la gestione dei rimborsi spesa. Ho, inoltre, approfondito l’utilizzo di lettori di e-book (sono stato possessore di un iRex Iliad 2nd e sono attualmente un felice possessore di un iRex DR-1000 e di un kindle) in ambito lavorativo e il loro utilizzo per l’introduzione di informazioni e dati nei sistemi informativi aziendali.

Negli ultimi  anni ho fornito supporto ai nostri clienti per la progettazione e lo sviluppo di applicazioni mobili. Sono autore del videogioco Paintings of Fire per iPhone e iPad e altri giochi sono in corso di sviluppo.

Sono, inoltre, autore e docente di  corsi e seminari legati alle tecnologie mobili e BYOD.