Progetto MarcoPolo

Il mercato delle applicazioni cosiddette mobili, cioè le applicazioni dedicate a dispositivi elettronici mobili, come smartphone e tablet, tipicamente dotati di accesso al web e più genericamente ad internet, sta registrando una fase di notevole espansione. Fino a pochi anni fa, gli smartphone erano indirizzati quasi esclusivamente al mercato business, per quelle aziende il cui personale necessitava di funzionalità avanzate. Oggi questi dispositivi sono relativamente economici e facili da usare, grazie soprattutto alla tecnologia “touch”, ai display ad alta risoluzione ed a sistemi operativi più intuitivi. Per questo motivo, soprattutto nei paesi occidentali, ma con un trend in forte crescita anche nei paesi asiatici, il mercato di riferimento delle applicazioni mobili si sta estendendo anche e alle persone che non hanno specifiche competenze tecnologiche. Si è creata quindi una enorme domanda di applicazioni mobili, non solo nel settore business-to-business (B2B) ma anche per i consumatori finali (B2C e C2C). I clienti di tali applicazioni sono gli utenti finali di ogni età che scaricano ed usano le applicazioni mobili per giocare, ricercare, condividere.

phone gap

Attualmente le applicazioni mobili vengono sviluppate allo stato dell’arte secondo due approcci principali: come applicazioni native e come applicazioni web based. Entrambi gli approcci presentano due problemi principali: (i) una applicazione deve essere sviluppata per ogni dispositivo su cui deve essere fruita (target) e (ii) i framework per lo sviluppo di applicazioni mobili sono in continua evoluzione, riducendo la produttività nella progettazione e sviluppo delle applicazioni, aumentando di conseguenza i costi. Un framework è un insieme di strumenti e librerie che implementano funzionalità di base, ed è tipicamente utilizzato nello sviluppo di applicazioni software, in particolare per quelle web e mobili.

Un problema simile si è riscontrato recentemente nel campo del Java Web Development, dove il grande numero di tecnologie e framework disponibili, e la loro vertiginosa curva evolutiva, hanno di fatto complicato il processo di svilupo del software. Come soluzione a questo problema, alcuni framework di tipo agile, come Ruby on Rails, hanno proposto un approccio semplificato allo sviluppo web, basato sul paradigma MDA (Model-Driven-Architecture) e su tecniche per ridurre le fasi manuali e ripetitive nel processo di sviluppo. MDA è il nome di una famiglia di standard correlati, gestiti dallo Object Management Group, e intesi a consentire un approccio integrato allo sviluppo del software, in cui la realizzazione di modelli possa essere considerata parte del processo di implementazione. MDA fornisce un insieme di linee guida per strutturare specifiche espresse tramite un modello.

HTML5 cordova

La metodologia da noi messa a punto prevede la realizzazione di un metaframework. Un metafamework è una generalizzazione di un insieme di framework esistenti, e fornisce un modello per la gestione dell’intero ciclo di vita delle applicazioni, consentendo agli sviluppatori delle applicazioni mobili di astrarre dai dettagli implementativi dei singoli device. I principali risultati previsti possono essere così riassunti:

  • MarcoPolo: un metaframework per applicazioni mobili, evoluzione del diffuso Roma Framework per applicazioni web tradizionali, che viene arricchito del mobile aspect, realizzato risolvendo con il ricorso ad attività di ricerca e sviluppo le complesse problematiche esistenti. Un aspect rappresenta un aspetto dell’applicazione, un concetto di base, un insieme di caratteristiche tra loro collegate logicamente, come la vista o la persistenza. Un aspect è implementato da uno o più moduli. L’aspect è il concetto su cui Roma implementa la filosofia e l’architettura del Meta-Framework: gli aspect di Roma sono implementati come interfacce Java e tramite l’utilizzo di queste interfacce l’utente costruisce la propria applicazione, senza la necessità di conoscere l’implementazione sottostante, in modo da poter sostituire il modulo corrente che implementa un aspetto con un altro che usa una tecnologia diversa, senza riscrivere la logica dell’applicazione. Seguendo il paradigma MDA, le applicazione mobili ed i portali web, saranno generati partendo dallo stesso modello di dominio. In linea con la filosofia di sviluppo open-source, i moduli di MarcoPolo sviluppati saranno rilasciati alla comunità che mantiene “Roma”. I moduli implementano le evoluzioni del Metaframework Roma, oltre agli adattatori ed alle interfacce per framework mobili come PhoneGap o Titanium. PhoneGap


  • Mobile Web IDE: un ambiente integrato di sviluppo software (IDE) che consente ai programmatori, ma anche agli utenti finali non-tecnici di sviluppare nuove applicazioni facilmente e velocemente, attraverso una interfaccia web e tecniche di cloud computing. L’IDE sarà di tipo drag-and-drop, in modo da facilitare agli utenti finali che non hanno competenze di programmazione, le attività di creazione delle proprie applicazioni, adattate per i propri dispositivi. La creazione delle applicazioni avverrà semplicemente connettendo tra loro componenti pre-esistenti messi a disposizione da una libreria preconfigurata.

La metodologia prevede lo sviluppo di un’applicazione multipiattaforma, cioè l’applicazione è definita una sola volta ma il suo codice è generato per ogni singola piattaforma su cui si vuole utilizzare l’applicazione sviluppata. Il paradigma MDA (Model Driven Architecture) adottato permetterà di gestire i differenti aspetti delle differenti piattaforme utilizzando Apache Cordova, in questo modo l’intera applicazione sarà scritta in HTML + JavaScript. L’accesso alle funzionalità di basso livello del device (come sensori, accelerometri, GPS, ecc.) sono wrappate da Apache Cordova fornendo un’API unica. Seguendo delle Best Practice l’applicazione risulterà pressoché indistinguibile dalle native.

Apache Cordova logo

Per saperne di più:


Progetto realizzato con il contributo del Programma Eureka-Eurostars (Project co-financed by the Eureka-Eurostars Programme).

Logo-ue

 

Eurostars Eureka Programme Logo