Università degli Studi Mediterranea di Reggio Calabria. Analisi di approcci per la gestione multipiattaforma di app mobile.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università degli Studi Mediterranea di Reggio Calabria. Analisi di approcci per la gestione multipiattaforma di app mobile."

Transcript

1 Università degli Studi Mediterranea di Reggio Calabria Dipartimento di Ingegneria dell Informazione, delle Infrastrutture e dell Energia Sostenibile Corso di Laurea in Ingegneria delle Telecomunicazioni Tesi di Laurea Analisi di approcci per la gestione multipiattaforma di app mobile 1 Relatore Prof. Domenico Ursino Candidato Carlo Iannò Anno Accademico

2 1

3 INTRODUZIONE Lo stato attuale del mercato continua a dimostrare come l interesse del pubblico verso i dispositivi mobili sia in costante crescita. Se, fino a pochi anni fa, il termine smartphone era quasi privo di significato, ora è abbastanza comune, per giovani e adulti, essere concentrati su piccoli dispositivi dove è possibile eseguire numerose operazioni. Non è, quindi, un caso se gli smartphone sono il secondo gruppo di dispositivi al mondo, in termini di quantità di connessioni, che utilizzano Internet abitualmente e, viste le numerose alternative di Sistemi Operativi, come ios, Blackberry, Windows Phone, Android, etc, sono sempre di più gli utenti che scelgono il proprio dispositivo, e quindi il Sistema Operativo correlato, in base alle proprie esigenze. Negli ultimi anni, soprattutto nel mondo aziendale, dove ogni dipendente portava con sé sul posto di lavoro il proprio dispositivo mobile personale rimpiazzando i tradizionali computer desktop, si è sviluppato un trend chiamato BYOD (Bring Your Own Device) che, tradotto letteralmente, significa portare il tuo dispositivo. 1 Dall avvento di tale trend si è reso necessario creare un ambiente di lavoro unificato in modo tale da garantire che ogni dipendente possa lavorare su qualunque documento, indipendentemente dal dispositivo, e quindi dal Sistema Operativo, utilizzati. Nasce, così, lo sviluppo mobile Cross Platform che significa Multi piattaforma mobile. Tale approccio abbraccia una vasta gamma di Sistemi Operativi e, di conseguenza, risolve problematiche che stanno alla base di ogni piattaforma; tra queste vediamo le diverse interfacce utente (UI) ed esperienze utente (UX), il consumo della batteria e le prestazioni, il linguaggio di programmazione, la versione di Sistema Operativo, etc. Grazie allo sviluppo Cross Platform sono state create delle strategie per risolvere le varie problematiche; tra queste vediamo il supporto diretto, che punta a concentrare il team di sviluppo su una sola piattaforma per volta, l attività di condivisione, la WebApp. Quest ultima Carlo Iannò 1

4 strategia permette di creare applicazioni Web facendo riferimento ai framework. Tra i principali framework, con licenza commerciale, vediamo Xamarin. Xamarin, nasce dalla necessità degli sviluppatori di trovare un ambiente migliore per poter sviluppare applicazioni mobile Cross Platform. Ciò che gli sviluppatori vogliono ottenere da Xamarin è un linguaggio di programmazione moderno, strumenti potenti, un flusso di lavoro efficiente e, piacevole, nonché la possibilità di migliorare l esperienza utente. Il linguaggio di programmazione utilizzato da Xamarin è C#, che, grazie alla sua facilità di comprensione, permette ad ogni sviluppatore di seguire la filosofia di Xamarin: rispettare l unicità di ogni piattaforma. Xamarin, come altri framework multipiattaforma che vedremo nel capitoli seguenti, possiede una politica di sviluppo basata su strumenti e strategie particolari; tra queste abbiamo la condivisione del codice, l utilizzo del pattern MVVM, etc. Al fine di migliorare lo sviluppo multipiattaforma, Xamarin utilizza tre strumenti fondamentali, ovvero XamChat, basato su un applicazione di chat ed una connessione Internet per lo scambio di messaggi di testo, Windows Azure, che consente di interagire come un server Web, ed, infine, Xamarin.mobile, che consente di aggiungere componenti di terze parti al progetto semplicemente servendosi di Xamarin Component Store. Come in ogni settore anche per lo sviluppo Cross Platform esistono delle alternative al framework Xamarin; un esempio sono, appunto, i framework con licenza open source Adobe PhoneGap e Apache Cordova. PhoneGap è un progetto della Nitobi Software, un azienda che crea applicazioni mobile e Web application da diversi anni. Esso consiste in un insieme di librerie statiche che permettono di sviluppare velocemente, ed in maniera molto efficace, applicazioni mobile che appartengono a diverse famiglie. La filosofia sulla quale è basato prevede di realizzare lo slogan Write once, port everywhere che, tradotto, vuol dire scrivi una volta, porta in tutto il mondo. PhoneGap si propone di focalizzare gli sforzi degli sviluppatori sull applicazione piuttosto che perdere tempo ad adattala ad ogni piattaforma; questo è il principale motivo perché numerosi sviluppatori preferiscono tale framework. 2 Carlo Iannò

5 Per poter sviluppare con PhoneGap è necessario conoscere HTML, CSS e JavaScript; questi tre elementi rappresentano i principali tool di sviluppo e vengono definiti linguaggi di programmazione di markup. I requisiti sono semplici: installare le SDK dove richiesto, assieme ai tool per consentire lo sviluppo delle applicazioni. Un successore di Adobe PhoneGap è il framework open source Apache, anch esso distribuito con licenza open source. Cordova rappresenta un set di API che permette agli sviluppatori di accedere alle funzionalità native dei dispositivi come, ad esempio, fotocamera, geolocalizzazione, accelerometro, etc. Tale framework, come il suo predecessore, fa si che lo sviluppo si basi interamente sull uso di HTML, CSS e JavaScript, seguendo il tradizionale approccio delle WebApp. I principali tool e le principali tecnologie vengono differenziate in due macro categorie: tecnologie Client Side, le quali non hanno potere di calcolo e svolgono compiti legati soltanto alla capacità di visualizzazione. (un esempio sono JavaScript e AJAX), e tecnologie Server Side, le quali hanno potere di calcolo, e quindi gestiscono compiti particolarmente pesanti e possono trasferire in rete grossi volumi di dati. (un esempio sono Apache Tomcat e PostgreSQL). Vista la diversità di tecnologie utilizzate dai diversi framework, sia commerciali che open source, si è avuta la necessità di sviluppare soluzioni ottimizzate per fornire il massimo rendimento durante la fase di sviluppo per il mobile Cross Platform, utilizzando i principali framework multipiattaforma. 1 Un azienda leader nel settore del mobile Cross Platform è IBM; grazie alla suite denominata IBM Worklight fornisce strategie di sviluppo complete, dalla protezione e gestione dei dispositivi alla realizzazione di applicazioni. IBM, sintetizza le fasi di sviluppo grazie al Lifecycle, dove ogni passo è rappresentato da funzionalità volte a raggiungere determinati obiettivi. IBM propone un approccio progettuale completo anche grazie all unione con sistemi e soluzioni SAP; ha, inoltre, identificato nella Business Analytics una priorità strategica, aiutando responsabili decisionali e sviluppatori a trovare soluzioni software nel settore mobile multipiattaforma. Carlo Iannò 3

6 Un ulteriore azienda leader nel fornire soluzioni strategiche nel settore mobile Cross Platform è Kony. Tale azienda si occupa principalmente di garantire che ogni utente, o meglio ogni utilizzatore, abbia un esperienza di utilizzo unica ed ottimizzata. Kony consente di combinare le informazioni provenienti da più fonti e creare soluzioni applicative. Un importanza fondamentale delle soluzioni Kony è la piattaforma di sviluppo KonyOne che rappresenta una struttura a strati in cui gli strati principali sono KonyOne Studio, che si occupa di fornire agli sviluppatori un ambiente di sviluppo integrato (IDE) con la massima flessibilità, e KonyOne, Server che fornisce sicurezza e scalabilità alle funzionalità di aggregazione, come, ad esempio, il servizio basato su sviluppo di applicazioni Web con piena integrazione ad altre soluzioni mobile multipiattaforma, come Adobe Omniture e IBM Coremetrics. Negli ultimi anni, oltre alle aziende leader citate precedentemente, sono nati altri approcci legati allo sviluppo mobile Cross Platform, tra questi abbiamo Sencha Touch, che utilizza i tool standard ed è concepito per essere compatibile con molti Sistemi Operativi, SAPUI5 e SAP FIORI, concepiti per creazione di interfacce utente che utilizzano elementi di programmazione Web, Rhodes, framework open source che permette di costruire vere applicazioni native sfruttando funzionalità del dispositivo e che è, inoltre, uno dei pochi framework che supporta il pattern MVC, separando la logica dell applicazione dalla grafica, Titanium Mobile, un framework open source che non si limita ad usare i più comuni linguaggi di programmazione, ma crea soluzioni Web basate su Ruby, PHP, etc; ultima, ma altrettanto importante tecnologia, che meno si discosta dalle soluzioni SAP, è NepTune Application Designer, basata su un IDE grafico dove le funzioni dell applicazione sono create nel sistema stesso. Un importante strumento di valutazione, usatissimo nel settore della consulenza strategica, dell analisi e della ricerca nel campo dell Information Technology (IT), è il Magic Quadrant sviluppato da Gartner. Grazie a tale strumento di valutazione può essere visualizzata la posizione dei framework descritti in questa tesi e, al tempo stesso, la posizione delle aziende leader nel settore di sviluppo mobile Cross Platform. 4 Carlo Iannò

7 La tesi è strutturata come di seguito specificato: Nel primo capitolo verrà descritta la politica di sviluppo Cross Platform. Nel secondo capitolo verrà descritto il framework commerciale Xamarin. Nel terzo capitolo verrà illustrato il funzionamento dei framework open source Adobe PhoneGap e Apache Cordova. Nel quarto capitolo verranno illustrate le principali soluzioni IBM nel campo dello sviluppo per applicazioni mobile. Nel quinto capitolo verranno illustrate le principali soluzioni Kony nel campo di sviluppo per applicazioni mobile. Nel sesto capitolo verranno illustrati i framework Sencha Touch, Appcelerator Titanium e descriveremo le soluzioni SAPUI5 e SAP Fiori; il capitolo si concluderà con la descrizione di NepTune Application Design. Infine, verranno tratte delle conclusioni in merito all argomento trattato e verranno assegnati alcuni possibili sviluppi futuri. 1 Carlo Iannò 5

8 6 Carlo Iannò

9 1. MOBILE APPLICATION DEVELOPMENT PLATFORMS (MADP) In questo capitolo verrà definito il termine Cross-Platform. Partendo dal significato del termine, verranno descritte le differenze fondamentali tra le piattaforme mobile. Successivamente, verranno esposte delle strategie Cross-Platform. Il capitolo si concluderà con un tool di Banchmarking Report grazie al quale metteremo in evidenza le principali aziende che forniscono strategie Cross-Platform. 1 Che cos è il Cross- Platform 2 Differenze Fondamentali tra le Piattaforme Mobile 3 Strategie Cross- Platform 1 4 Tool di Benchmarking Report Carlo Iannò 7

10 CHE COS È IL CROSS-PLATFORM In Informatica il termine Cross-Platform, o Multi-Piattaforma, può riferirsi ad un linguaggio di programmazione, ad un applicazione software o ad un dispositivo hardware che funziona su più di un sistema o, appunto, piattaforma (ad esempio, Linux, Windows e Macintosh). Negli ultimi anni, e soprattutto nel mondo aziendale, dove ogni dipendente portava con sè sul posto di lavoro il proprio dispositivo mobile personale per utilizzarlo al posto dei tradizionali computer desktop, si è sviluppato un trend chiamato BYOD (Bring Your Own Device) che, tradotto letteralmente, significa portare il proprio dispositivo. Dall avvento di tale trend si è reso necessario per le imprese sviluppare delle applicazioni mobili aziendali che fossero in grado di lavorare su qualunque documento con la massima compatibilità possibile tra i dispositivi mobili che operano su varie reti e che utilizzano diversi sistemi operativi. Lo sviluppo Cross Platform, grazie al trend BYOD, si è evoluto passando da piattaforme fisse a piattaforme mobili così da creare un ambiente di sviluppo non solo per computer desktop ma anche per dispositivi mobili, dando vita al concetto di Cross Platform Development Mobile. Sono nate e si sono sviluppate molte aziende (ad esempio IBM, Kony, Adobe ) con lo scopo principale di offrire soluzioni e startegie per il mobile cross platform dando supporto ad ambienti nativi come ios, Android, Windows Phone, BlackBerry, etc, consentendo un ambiente singolo per lo sviluppo il quale sarà poi tradotto in diverse piattaforme mobili. Grazie alla nascita di software come Xamarin, PhoneGap, Cordova, i quali forniscono numerosi strumenti per gli sviluppatori, si è riusciti a ridurre i costi e aumentare la velocità con la quale si sviluppano applicazioni nonché diminuire la complessità del codice sfruttando degli strumenti semplici basati su linguaggi comuni per lo scripting, tra cui CSS, HTML e JavaScript. Un esempio base di Cross Platform possono essere considerate le applicazioni Web perché, idealmente, sono accessibili da qualsiasi browser Web all interno di diversi sistemi operativi. Tali applicazioni utilizzano un sistema client server e variano ampiamente in complessità e funzionalità. Questa ampia variabilità complica notevolmente l obiettivo dello sviluppo Cross Platform, che è in contrasto con l obiettivo di funzionalità. 8 Carlo Iannò

11 DIFFERENZE FONDAMENTALI TRA LE PIATTAFORME MOBILE Lo sviluppo Cross Platform, nonostante sia di notevole vantaggio poiché ci consente di scrivere il codice una sola volta e tradurlo su più piattaforme, prevede delle differenze fondamentali tra le diverse piattaforme mobile. E necessario, quindi, descrivere le principali differenze in modo da poter preventivare eventuali problemi che potrebbero sorgere quando si sviluppa del codice multipiattaforma. Consideriamo sei principali differenze: Linguaggio di programmazione e versione del Sistema Operativo (OS); Interfaccia Utente (UI) e d Esperienza Utente (UX) ; Desktop Integration Support; Multitasking Support; Consumo della batteria e prestazioni; Acquisto e pubblicità delle applicazioni. Nel seguito di questo paragrafo verranno analizzate in dettaglio queste sei principali differenze. Carlo Iannò 9

12 LINGUAGGIO DI PROGRAMMAZIONE E VERSIONE OS Considerando le principali piattaforme mobile attuali, possiamo notare che ognuna di esse rilascia i propri SDK (Software Development Kit) che consentono di sviluppare applicazioni basandosi soltanto sullo sviluppo nativo per ogni piattaforma e, quindi, supportando soltanto il corrispettivo linguaggio di programmazione. Tuttavia, questi linguaggi appartengono ad una delle poche famiglie di programmazione di base. La seguente tabella fornisce una panoramica dei principali linguaggi di programmazione e le rispettive piattaforme che supportano tali linguaggi: 10 Carlo Iannò

13 Possiamo adesso, definire il concetto di Framework Cross-Platform, in grado di superare le barriere dei linguaggi di programmazione di base. Tale struttura si basa su tre parametri fondamentali: tecnologie Web; Interpretazione; compilazione Multipla. Inoltre, la maggior parte delle piattaforme forniscono anche un insieme di API (Application Programming Interface) multipiattaforma, che consentono di accedere a determinate funzioni del dispositivo come, per esempio, la geolocalizzazione, elementi multimediali, funzionalità di rete, etc. Un altro aspetto da considerare quando si sviluppa codice Cross Platform è la versione del sistema operativo che, essendo in continua evoluzione, aggiunge un livello di complessità maggiore; pertanto, gli strumenti Cross Platform a volte necessitano di aggiornamento. INTERFACCIA UTENTE (UI) E D ESPERIENZA UTENTE (UX) Un ostacolo fondamentale per l approccio Cross Platform è rappresentato dalla diversa Interfaccia Utente (UI) ed Esperienza Utente (UX), modelli molto rilevanti sulle singole piattaforme mobile. E relativamente facile creare un interfaccia utente che funzioni su diverse piattaforme; tuttavia, tale approccio potrebbe perdere sottigliezze UI importanti, che sono disponibili solo su un unica piattaforma e, quindi, potrebbe migliorare drasticamente l esperienza utente. Carlo Iannò 11

14 Un aspetto importante è la filosofia di progettazione delle piattaforme mobile ; mentre molte piattaforme cercano un design realistico, e quindi puntano a migliorare l Esperienza Utente partendo dall Interfaccia Utente, altre tendono a creare degli stili ben precisi e, quindi, basandosi su un Interfaccia Utente più o meno unica, cercano di migliorare l Esperienza Utente; un esempio potrebbe essere l interfaccia Metro di Windows Phone. Un altra sfida fondamentale per chi sviluppa applicazioni Cross Platform è la familiarità con i diversi dispositivi; tale aspetto può migliorare notevolmente l Esperienza Utente, il quale riuscirà a lavorare con estrema facilità. Un semplice esempio potrebbe essere quello di non inserire il tasto fisico Indietro. DESKTOP INTEGRATION SUPPORT L integrazione del desktop varia molto tra le piattaforme mobile ; ciò consente di personalizzare l home screen. Su ios e Android è possibile utilizzare la schermata widget mentre su Windows Phone è possibile creare piastrelle che aggiungono informazioni strutturate. Tutto ciò comporta una carico di lavoro maggiore per coloro che sviluppano su sistemi multipli, ma migliora drasticamente l interazione con gli utenti. MULTITASKING SUPPORT Il multitasking consente di mantenere attivi servizi in background e di eseguire contemporaneamente diverse applicazioni. E realizzato in modo differente tra i sistemi operativi; per esempio su alcune piattaforme non è possibile chiudere del tutto le applicazioni che rimangono attive in modalità background e vengono chiuse definitivamente dal sistema operativo soltanto quando il dispositivo esaurisce la memoria. Su altre piattaforme, invece vi è una selezione limitata di attività in background che possono continuare a funzionare dopo la chiusura dell applicazione. Quindi, si dovrebbero valutare strategie multipiattaforma che consentono l utilizzo della modalità background. 12 Carlo Iannò

15 CONSUMO DELLA BATTERIA E PRESTAZIONI Il consumo della batteria è strettamente legato al concetto di multitasking. Secondo la Legge di Moore il numero di transistor all interno del microprocessori raddoppia ogni 24 mesi; di conseguenza anche le prestazioni del microprocessore raddoppiano; tuttavia, la capacità della batteria viene raddoppiata solo ogni sette anni. Più si è vicini alla piattaforma in un sistema Cross Platform più è possibile controllare il consumo della batteria e le prestazioni dell applicazione. Come regola generale, più velocemente si vuole eseguire l applicazione, maggiori prestazioni sono necessarie al dispositivo e, quindi, maggiore sarà il consumo della batteria. ACQUISTO E PUBBLICITÀ DELLE APPLICAZIONI Ci sono diverse opzioni per la visualizzazione di annunci pubblicitari all interno di ogni applicazione mobile; infatti, ad ogni applicazione vengono offerti servizi pubblicitari specifici per avere dei ricavi e migliorare l Esperienza Utente. Tuttavia tali servizi utilizzano politiche diverse tra le piattaforme e, quindi, necessitano di maggiore attenzione durante la fase di sviluppo. Un altro aspetto importante da considerare è il costo, in quanto ogni applicazione, secondo la piattaforma per la quale è stata sviluppata, potrebbe avere un costo diverso ed anche meccanismi di acquisto totalmente differenti; bisogna, quindi, prestare attenzione a tali differenze quando si sviluppa del codice multipiattaforma. Carlo Iannò 13

16 STRATEGIE CROSS-PLATFORM Questo paragrafo descrive alcune delle strategie che si possono utilizzare per implementare le applicazioni su diverse piattaforme. In particolare, consideriamo quattro principali strategie multipiattaforma: Supporto Diretto; Attività di Condivisione; Compilazione Multilinguaggio; Web Apps (Hybrid Apps). Nel seguito di questo paragrafo analizzeremo in dettaglio tali strategie SUPPORTO DIRETTO Il modo più semplice per sviluppare un applicazione è quello di concentrare dapprima il team di sviluppo su una sola piattaforma e, successivamente, raccogliere informazioni sull interfaccia utente e sull esperienza utente per capire se risulta positivo passare ad ulteriori piattaforme. Un modo più complesso è quello di supportare diversi team di sviluppo specializzati per ogni piattaforma di destinazione; tutto ciò richiede un intenso lavoro ma, probabilmente, darà la migliore integrazione ed esperienza utente su ciascun sistema. 14 Carlo Iannò

17 ATTIVITÀ DI CONDIVISIONE Quando si supportano diversi team per più piattaforme è necessario condividere strutture dati, algoritmi, idee e concetti basati sull Interfaccia Utente e sull Esperienza Utente. È bene, anche, utilizzare un linguaggio comune di una macchina virtuale che operi attraverso una varietà di piattaforme. Tutto ciò permette ai team di sviluppo di risparmiare molto tempo e fatica durante la fase di sviluppo Cross Platform. COMPILAZIONE MULTILINGUAGGIO La compilazione multilinguaggio consente la codifica di un linguaggio che viene tradotto in una specifica piattaforma. In termini di prestazioni questa spesso è la migliore soluzione Cross Platform; tuttavia, ci potrebbero essere differenze di prestazioni rispetto alle applicazioni native. Ci sono tre approcci comuni per tradurre dal linguaggio multipiattaforma ad un linguaggio di destinazione specifico: fonte diretta di traduzione, fonte indiretta di traduzione (cioè traducendo il codice in un linguaggio intermedio tra quello sorgente e quello di destinazione) e linguaggio di programmazione e compilazione da utilizzare direttamente sulla piattaforma interessata. WEB APPS (HYBRID) Facendo riferimento ai framework, possiamo creare applicazioni Web che si comportano quasi come applicazioni reali; tuttavia, bisogna essere consapevoli del fatto che le tecnologie hanno delle limitazioni quando si tratta di integrazione delle piattaforme. Carlo Iannò 15

18 In genere non si ha accesso a caratteristiche hardware e interfaccia utente nativa in maniera semplice, ma bisogna considerare il fatto che si stanno considerando delle strategie multipiattaforma. Lo sviluppo Web ibrido implica incorporare una WebView (Interfaccia Web) all interno di un applicazione nativa. Tale approccio consente di accedere alle funzionalità native delle singole piattaforme; in tale contesto si può utilizzare il codice nativo per migliorare le prestazioni e l esperienza utente. Le applicazioni ibride consentono, tramite dei framework, di incrociare le parti di sviluppo Web con la piattaforma di sviluppo scelta. Tali soluzioni consentono, inoltre, di sviluppare applicazioni compatibili con il massimo numero possibile di dispositivi migliorando l accesso ai siti Web tramite i dispositivi mobili. La seguente tabella fornisce un quadro generale sulle soluzioni principali, con la rispettiva licenza, l input e l output, ovvero la piattaforma per la quale vengono fornite soluzioni partendo da un input che si riferisce al linguaggio di programmazione utilizzato: 16 Carlo Iannò

19 TOOL BENCHMARKING REPORT Una delle tecniche manageriali di cui recentemente si è più discusso è il Benchmarking, inteso come quel processo sistematico e continuo per la comparazione delle performance, delle funzioni o dei processi delle organizzazioni [...] allo scopo non solo di raggiungere quelle performance ma di superarle ( Commissione Europea, 1996 ). L obiettivo di questo rapporto, secondo una politica di programmazione Cross Platform, è quello di identificare lo strumento multipiattaforma più appropriato e i servizi per lo sviluppo di applicazioni mobile. Esso fornisce, inoltre, informazioni di monitoraggio sullo stato attuale del mercato e sull analisi comparativa, che include strumenti e servizi che supportano l idea di sviluppare una sola volta e tradurre su più piattaforme; tale analisi si basa su due progetti di ricerca condotti tra Marzo e Maggio 2014 da research2guidance (the mobile research specialists): Strumento di Confronto. Research2guidance ha invitato i fornitori di tool Cross Platform e i fornitori di servizi a condividere informazioni sulla loro piattaforma, supporto per i dispositivi, team di sviluppatori, costi, etc. Successivamente è stato chiesto ai fornitori di compilare un sondaggio on line; dopodiché, per convalidare i risultati, è stata richiesta un intervista. A tale richiesta hanno dato risposta positiva 40 produttori. Valutazione degli Utenti. Agli sviluppatori, agli editori e ai dirigenti che valutano l app nelle loro aziende è stato chiesto di condividere la loro esperienza con i tool Cross Platform. Nel 2014 hanno partecipato al sondaggio globale online in 2.188; il livello di partecipazione degli utenti è rappresentato nella seguente figura: Carlo Iannò 17

20 La classificazione degli strumenti e dei servizi si basa su un auto posizionamento dei fornitori di soluzioni Cross Platform secondo il seguente schema: Web App Toolkits. Strumenti che supportano il processo di sviluppo di applicazioni Web e pagine Web mobile. Un esempio di tool che appartiene a tale categoria è Vaadin. App Factories (Drag & Drop). Ambienti di sviluppo di applicazioni che consentono anche ai non sviluppatori di sviluppare codice nativo o una Web App in pochi giorni o addirittura ore. Esempi di tool che appartengono a tale categoria sono: AppShed, GameBuilder Studio, Vizi Apps, etc. Cross Platform IDEs (Ambiente di Sviluppo Integrato). Questi strumenti utilizzano il proprio SDK per lo sviluppo e la compilazione del codice sorgente per soddisfare i requisiti nativi. Tendono a concentrarsi su un minor numero di piattaforme per essere in grado di tenere il passo con il ritmo dell innovazione, d altra parte la strategia è quella di supportare più piattaforme possibili. Esempi di tool che appartengono a tale categoria sono: Xamarin, Unity, Appcelerator, Marmalade, Titanium etc. Cross Platform IDEs for Enterprises (Ambiente di Sviluppo Integrato Aziendale). Questi strumenti supportano il flusso di lavoro e di sviluppo di App in un ambiente aziendale e forniscono un maggior numero di API preinstallate. Alcuni di essi, inoltre, fanno parte di una suite più ampia che consente la gestione dei dispositivi. AppConKit, IBM Worklight, Appear IQ, etc. 18 Carlo Iannò

21 Cross Platform Compilers. Sono degli strumenti che si concentrano sulla traduzione di un codice sorgente unico basato su applicazioni native. Esempi di tool che appartengono a tale categoria sono: PhoneGap Build, Cocoon (Games) etc. Cross Platform Services. Sono servizi che consentono una facile integrazione tra le piattaforme per supportare attività quali l acquisto di App, notifiche push e pubblicità. Esempi di tool che appartengono a tale categoria sono: Capriza, Codename One, MobileSmith, etc. Di seguito viene mostrato un grafico che rappresenta la crescita dei principali sviluppatori di tool Cross Platform rispetto all anno 2013: CONCLUSIONI Alla luce dello studio effettuato in questo capitolo si può affermare che, per sviluppare applicazioni mobile Cross Platform, bisogna, innanzitutto, fare un analisi sulle principali differenze tra le piattaforme; successivamente, è necessario adottare delle strategie specifiche ed, infine, auto posizionarsi in un determinato settore per sviluppare strumenti Cross Platform. Carlo Iannò 19

22 20 Carlo Iannò

23 2. XAMARIN In questo capitolo verrà illustrato il funzionamento del software Xamarin. Si partirà con un introduzione sulla politica di condivisione del codice utilizzata da Xamarin; successivamente verranno spiegati i principali strumenti sui quali si basa tale software. Il capitolo si concluderà con una descrizione dei principali vantaggi e svantaggi di tale software e con un illustrazione della sua posizione sul Magic Quadrant di Gartner. 1 Che cos è Xamarin 2 Condivisione del codice secondo Xamarin 3 Gli strumenti di Xamarin 4 Pro e Contro e Gartner Magic Quadrant 2014 Carlo Iannò 21

24 CHE COS È XAMARIN Nel Maggio del 2011 dall omonima società che l ha creato nasce Xamarin, un software in grado di sviluppare codice Cross-Platform. Il motivo principale per il quale venne creato un software come Xamarin è legato alla necessità, per gli sviluppatori, di trovare un ambiente migliore per poter sviluppare applicazioni mobile. Ciò che si vuole ottenere da Xamarin è un linguaggio di programmazione moderno, strumenti potenti, un flusso di lavoro efficiente e piacevole e la possibilità di creare migliori esperienze utente. L approccio principale di Xamarin è quello di consentire agli sviluppatori di creare interfacce utente che sono uniche per ogni piattaforma e componenti che possono essere facilmente riutilizzati su un altra piattaforma, utilizzando il linguaggio di programmazione C#. La filosofia sulla quale è basato Xamarin rispetta l unicità di ogni piattaforma e non obbliga gli sviluppatori a creare applicazioni che sembrano le stesse su tutte le piattaforme; al contrario, li incoraggia a sfruttare le caratteristiche che ogni piattaforma offre. Tale software riconosce che, oltre all interfaccia utente, le applicazioni hanno molte componenti altamente riutilizzabili che possono essere condivise tra le piattaforme, come, ad esempio, il codice per l accesso ai servizi Web, che può essere riutilizzato facilmente. La scelta del linguaggio di programmazione è ricaduta su C# soprattutto per la sua facilità di utilizzo rispetto ai più comuni linguaggi, consentendo a sviluppatori meno esperti di creare soluzioni Cross-Platform utilizzando Xamarin. Negli ultimi due anni, e soprattutto nel 2013, l obiettivo principale della società Xamarin è stato quello di rendere sempre più veloce e di facile utilizzo il software; di conseguenza, per soddisfare tutte le richieste degli sviluppatori sono stati creati strumenti e servizi che comprendono diverse categorie di persone. Alcuni esempi sono: Xamarin Platform, Xamarin Studio, Xamarin University, Test Cloud, etc. Xamarin offre un ampia suite di sviluppo con diverse soluzioni accessibili ad un costo che varia a seconda della licenza scelta. Vi è, tuttavia, un pacchetto Starter con licenza free che offre delle funzionalità base a chiunque volesse iniziare ad utilizzare Xamarin. 22 Carlo Iannò

25 CONDIVISIONE DEL CODICE SECONDO XAMARIN Il software Xamarin, tramite la suite Xamarin Studio, permette di condividere una buona parte del codice tra le principali piattaforme di sviluppo sfruttando le API native. Secondo la politica di Xamarin Studio, la condivisione del codice è di fondamentale importanza per poter separare l applicazione in diversi strati. È necessario, quindi, considerare degli aspetti principali al fine di ottenere una ben precisa condivisione del codice. In particolare, consideriamo i sei seguenti aspetti principali: il design pattern Model-View ViewModel (MVVM); strategie di organizzazione del progetto; librerie di classi portabili; utilizzo di istruzioni per il preprocessore; semplificazione dell iniezione di dipendenza; implementazione dell inversione di controllo. Nel seguito di questo paragrafo verranno analizzate in dettaglio questi sei aspetti principali. Carlo Iannò 23

26 IL DESIGN PATTERN MODEL-VIEW VIEWMODEL Il Model-View ViewModel (MVVM) è un modello di progettazione che è stato originariamente inventato per Windows Presentation Foundation (WPF) e, successivamente, adottato da Xamarin per separare l interfaccia utente dalla logica di business e sfruttare appieno il cosiddetto Data Binding, ossia stabilire una connessione tra UI e business logic. Con questo modello l architettura delle applicazioni ha uno strato di ViewModel distinto che non ha dipendenze da nessuna interfaccia utente; questo consente di organizzare il codice in modo da permettere la modifica di singole parti senza influire sulle altre. Tale approccio offre numerosi vantaggi come la possibilità di adottare uno stile di codifica iterativo e basato sull esplorazione, il supporto della collaborazione in team, etc. Le applicazioni basate sul modello MVVM sono suddivise nei seguenti livelli: Model. Include tutto il codice che implementa la logica di base dell applicazione e definisce i tipi di codice necessari per modellare il dominio. È completamente indipendente dalla View e dai livelli del ViewModel. View. Definisce l interfaccia utente tramite un markup dichiarativo. Il data binding definisce la connessione fra componenti specifici dell interfaccia utente e i vari membri del ViewModel. ViewModel. Fornisce le destinazioni del data binding per la View. In molti casi il ViewModel espone direttamente il Model e fornisce membri che eseguono il wrapping di membri specifici del Model. Il ViewModel può anche definire membri che consentono di tenere traccia dei dati rilevanti per l interfaccia utente, ma non per il Model, ad esempio l ordine di visualizzazione degli elementi di un elenco. 24 Carlo Iannò

27 La figura seguente mostra il design paern MVVM: STRATEGIE DI ORGANIZZAZIONE DEL PROGETTO Le applicazioni possono fare riferimento solo a librerie di classi consentite da Xamarin, ad esempio per progetti specifici delle piattaforme ios o Android bisogna utilizzare le librerie di classi Xamarin.iOS o Xamarin.Android. Una soluzione ammessa da Xamarin Studio per gestire in comune il codice ed avere progetti comuni per ogni piattaforma è quella di adoperare delle strategie per la creazione di una soluzione Cross-Platform. In tale contesto è possibile considerare tre strategie principali, ciascuna con i suoi vantaggi e svantaggi: File di collegamento. Questa strategia si basa su una semplice libreria di classi.net 4.0 o.net 4.5, la quale contiene tutto il codice condiviso. Si potrebbe, quindi, avere un nuovo progetto, e quindi l applicazione desiderata su ogni piattaforma specifica. È possibile avere una sottodirectory con tutti i file collegati alla libreria della prima classe. Vantaggio: approccio molto flessibile. È possibile scegliere di collegare o meno alcuni file; inoltre, è possibile fare riferimento a diverse librerie su Android rispetto a ios. Svantaggio: si deve gestire l esistenza di un file in tre progetti, come la libreria di base, ios e Android. Potrebbe rallentare di molto il lavoro del team, soprattutto se si tratta di un applicazione di grandi dimensioni. Carlo Iannò 25

28 Clonare file di progetto. È molto simile al file di collegamento, con la differenza principale che si dispone di una libreria di classi per ogni piattaforma, oltre a quella principale relativa al del progetto. I file possono facilmente essere aggiunti anche senza collegamento. Vantaggio: approccio molto flessibile come file di collegamento; non c è bisogno di collegare manualmente i file. Svantaggio: si deve garantire l esistenza di un file in tre progetti. Librerie di classi portabili. Approccio ottimale; si inizia creando una libreria di classi portabile (PCL), o meglio, il progetto per tutto il codice in comune. Si tratta di un particolare tipo di progetto che consente a più piattaforme di fare riferimento ad esso e di utilizzare il più piccolo sottoinsieme di C# e.net disponibile su ogni piattaforma. In altre parole ogni progetto specifico per la piattaforma farebbe riferimento direttamente a questa libreria. Vantaggio: tutto il codice è condiviso in un progetto, e tutte le piattaforme utilizzano la stessa libreria. Questo è l approccio ottimale e più comodo per raggiungere la maggior parte delle applicazioni Cross-Platform. Svantaggi: non è possibile fare riferimenti a librerie differenti su ogni piattaforma. Si potrebbe anche essere limitati ad un sottoinsieme di.net in base al numero di piattaforme di destinazione. LIBRERIE DI CLASSI PORTABILI Una libreria di classi portabili (PCL) è un progetto di libreria C# che può essere supportato su più piattaforme, tra cui ios, Android, Windows. Un esempio potrebbero essere le applicazioni di Windows Store, Silverlight e Xbox 360. Tale libreria è considerata una soluzione da parte di Microsoft per semplificare lo sviluppo tra le diverse versioni di.net framework. Xamarin ha aggiunto anche il supporto per ios e Android nelle versioni più recenti dei loro prodotti. Molte soluzioni Cross-Platform sono basate sulla libreria di classi portabile; alcuni esempi sono: JSON, MVVM Cross, etc. 26 Carlo Iannò

29 UTILIZZO DI ISTRUZIONI PER IL PREPROCESSORE Quando si utilizzano i file di collegamento, o file di progetto clonati uno degli strumenti più potenti è l uso di istruzioni per il preprocessore. Se non si ha familiarità con tali strumenti, C# ha la capacità di definire le variabili del preprocessore utilizzando #if IPHONE e #if! IPHONE. Un semplice esempio potrebbe essere quello mostrato in figura: In Xamarin Studio è possibile definire le variabili del preprocessore all interno delle impostazioni del progetto in fase di costruzione. È, inoltre, possibile definire queste variabili nella parte superiore di qualsiasi file C# dichiarando #define IPHONE; tuttavia tali variabili saranno applicate solo all interno del file C#. L utilizzo di istruzioni per il preprocessore non è normalmente la soluzione migliore per lo sviluppo multipiattaforma. Esse sono generalmente più utilizzati in semplici funzioni, perché, altrimenti, il codice potrebbe diventare molto difficile da leggere, con molte dichiarazioni #if e #else. Una migliore soluzione consiste nell utilizzo di eredità o interfacce quando si ha una classe che fa riferimento a più piattaforme specifiche. Carlo Iannò 27

30 SEMPLIFICARE L INIEZIONE DI DIPENDENZA Il concetto è nato dai principi di progettazione Object-Oriented Single Open Liskov Interface Dependency (SOLID), ossia un insieme di regole di ricerca. Si tratta di un modello di progettazione volto a rendere il codice del progetto, e quindi l interno dell applicazione, più flessibile, così da poter scambiare alcune funzioni in caso di necessità. L idea è quella di creare delle dipendenze tra le classi in un applicazione così che ogni classe interagisca solo con un interfaccia o libreria base / classe astratta. Tutto ciò dà la libertà di ignorare i diversi metodi su ogni piattaforma quando stiamo compilando funzionalità native. IMPLEMENTAZIONE DI INVERSIONE DI CONTROLLO L inversione di controllo (IOC) è un modello di progettazione che serve per completare l iniezione di dipendenza; in altre parole, è una tecnica di programmazione orientata agli oggetti in cui l accoppiamento tra gli oggetti è realizzato a runtime. Il principio di base è che molti degli oggetti creati in tutta l applicazione sono gestiti e creati da una singola classe; invece di utilizzare i costruttori standard C# per le classi possiamo utilizzare una classe di service locator, o meglio, una classe di servizio di individuazione. Se un oggetto necessita di accedere ad un particolare servizio l'oggetto stesso si prende la responsabilità di gestirlo, o avendo un diretto riferimento al servizio, o individuandolo con un service locator che gli restituisce un riferimento ad una specifica implementazione del servizio. 28 Carlo Iannò

31 GLI STRUMENTI DI XAMARIN Xamarin ha sviluppato dei prodotti fondamentali per lo sviluppo di applicazioni Cross- Platform: Xamarin Studio (ex MonoDevelop), Xamarin.iOS (ex MonoTouch) e Xamarin.Android (ex Mono per Android). Tali strumenti consentono agli sviluppatori di sfruttare le librerie native su ios e Android e sono costruite sul runtime Mono. Mono è un implementazione open source di C# e.net framework. In origine era sviluppato da Novell per essere utilizzato su sistemi operativi come Linux. Dal momento che ios e Android adottano la stessa politica di Linux, Novell ha sviluppato MonoTouch e Mono per Android come nuovi prodotti per indirizzare le piattaforme mobile. Ottenere lo sviluppo di applicazioni Cross-Platform può richiedere un certo tempo e, come se non bastasse, Apple e Google hanno entrambi i propri requisiti di sviluppo sulle rispettive piattaforme. Xamarin è stata fondata per concentrarsi completamente su questi strumenti per lo sviluppo con C# e, basandosi su semplici applicazioni di sviluppo, crea un ambiente migliore per il Cross-Platform. È necessario, quindi, considerare alcuni strumenti al fine di migliorare la capacità di programmazione multipiattaforma. Consideriamo tre strumenti principali: XamChat - un Cross-Platform App; Servizi Web con notifiche push: Windows Azure; Librerie di terze parti e introduzione a Xamarin.mobile. Carlo Iannò 29

32 XAMCHAT - UN CROSS-PLATFORM APP Il modo migliore per imparare a programmare è quello di prendere un progetto semplice e concentrarsi sui concetti che si cerca di apprendere, senza doversi preoccupare di correggere errori, bug, etc. Per migliorare la comprensione del codice Cross-Platform di Xamarin Studio è necessario sviluppare una semplice applicazione chiamata XamChat per ios e Android. Il concetto è semplice: si tratta, infatti, di un applicazione di chat che utilizza una connessione Internet standard per lo scambio di messaggi di testo, utilizzando un layout rapido della domanda e della risposta per scambiare velocemente informazioni e comprendere al meglio il codice all interno delle applicazioni. La seguente figura ne mostra un esempio: Molte volte, durante lo sviluppo di un applicazione mobile, potrebbe essere necessario iniziare lo sviluppo dell applicazione prima del previsto; una soluzione potrebbe essere quella di servirsi di un servizio Web Back-end in modo tale da prevenire l arresto completo di un applicazione e sviluppare una versione finta del servizio. Poiché la comunicazione con un servizio Web può essere un processo lungo è sempre consigliato l utilizzo di una particolare classe detta Task<T> per le operazioni di login, register, AddFriend, sendmessage, etc. 30 Carlo Iannò

33 Un importanza fondamentale è assunta dal livello ViewModel; esso sarà responsabile della presentazione di ciascuna operazione dell interfaccia utente, della validazione dell input, etc. A questo punto sarebbe una buona idea includere la classe ServiceContainer e permettere ad essa di interagire con il livello del ViewModel così da sostenere l iniezione di dipendenza e l inversione di controllo. Si potrebbe utilizzare un altra libreria e scrivere una classe base per tutti gli strati del ViewModel all interno del progetto; questa classe ha sempre la funzionalità comune a tutte le classi ed è una buona soluzione per mettere alcune parti del codice che vengono utilizzati da tutti i metodi delle classi. Esempi di metodi che appartengono a tali classi sono: le variazioni di notifica, i metodi o le istanze simili, etc. La classe BaseViewModel è una classe ideale per inserire qualsiasi funzionalità comune che si ha intenzione di riutilizzare in tutte le applicazioni. Ad esempio, per l applicazione XamChat, abbiamo solo bisogno di implementare alcune funzionalità per indicare se il livello ViewModel è occupato. È necessario utilizzare una proprietà e un evento che l interfaccia utente sarà in grado di registrare e visualizzare un indicatore di attesa sullo schermo. Carlo Iannò 31

34 SERVIZI WEB CON NOTIFICHE PUSH: WINDOWS AZURE Applicazioni mobile sono definite dalla connettività di rete. Un applicazione mobile che non interagisce con un server Web è molto rara e, ma allo stesso tempo, risulterebbe molto noiosa da utilizzare. Utilizzando la piattaforma Cloud Windows Azure possiamo implementare un Back-end lato server e dimostrare come interagiscono le applicazioni come, per esempio, XamChat, che utilizza una funzionalità denominata Azure Mobile Services, la quale ha il vantaggio di avere le notifiche push incorporate. L applicazione sarà in grado di comunicare con un Web Server e permetterà ai suoi utenti di interagire fra loro. Windows Azure è una piattaforma cloud eccellente; è stata rilasciata da Microsoft nel 2010 con lo scopo di favorire la costruzione di moderne applicazioni Web e servizi. Ciò significa che fornisce l accesso alle macchine virtuali all interno delle quali è possibile installare qualunque sistema operativo o software. Azure fornisce anche strumenti multipiattaforma per la creazione di applicazioni, come i siti Web Azure e SQL Azure. I servizi forniti da Windows Azure e più comunemente utilizzati sono: Macchine Virtuali. Azure consente l accesso a tutte le macchine virtuali e permette di installare qualsiasi sistema operativo a scelta dello sviluppatore. Siti Web. È possibile eseguire qualsiasi tipo di sito Web in Microsoft Internet Information Services (IIS) SQL Azure. Si tratta della versione Cloud-Based di Microsoft SQL Server utilizzata per la memorizzazione dei dati. 32 Carlo Iannò

35 Servizi mobile. È una piattaforma semplice per la creazione di servizi Web per applicazioni mobile. Utilizza SQL Azure per l archiviazione back-end e un semplice Java- Script. Storage. Azure fornisce un metodo per la memorizzazione di file binari e per la memorizzazione delle tabelle; si tratti di una soluzione NoSQL per la persistenza dei dati. Servizi bus. Si tratta di una soluzione basata sul cloud per la creazione di code per facilitare la comunicazione tra gli altri servizi cloud. Comprende anche la notifica hub come un modo semplice per fornire le notifiche push per le applicazioni mobile. Servizi cloud. Permette di raggruppare più servizi insieme e creare ambienti di produzione. Si tratta di un ottimo strumento per la distribuzione di software. Windows Azure è una piattaforma cloud Microsoft; si tratta di una raccolta in continua crescita di servizi integrati per calcolo, archiviazione dati, rete e App. Tali servizi permettono di essere più veloci, più efficienti e di risparmiare tempo e denaro. Azure è un importante piattaforma cloud classificata da Gartner come leader del settore per Infrastructure-as-a-Service (IaaS) e Platform-as-a-Service (PaaS). Questa combinazione avanzata di servizi gestiti e non gestiti consente di creare, distribuire e gestire applicazioni in maniera autonoma e indipendente al fine di ottenere una produttività impareggiabile. Azure supporta qualsiasi sistema operativo, linguaggio, strumento e framework, da Windows a Linux, da SQL Server a Oracle, da C# a Java. Esistono altri fornitori di servizi concorrenti di Windows Azure; alcuni esempi sono: Parse. Questo servizio fornisce un prodotto simile a quello di Azure mobile Service, completo di memorizzazione dei dati e notifiche push. Urban Airship. Questo servizio fornisce le notifiche push per le applicazioni mobile su più piattaforme. Amazon Web Services. Questo servizio è una soluzione cloud completa equivalente a Windows Azure. Ha tutto il necessario per la distribuzione di applicazioni in cloud con il totale supporto della macchina virtuale. Carlo Iannò 33

36 LIBRERIE DI TERZE PARTI E INTRODUZIONE A XAMARIN.MOBILE Xamarin supporta dei sottoinsiemi del framework.net e, per la maggior parte, include le API standard che si trovano nelle librerie di classi di base. Gran parte delle librerie open source di C# possono essere utilizzate da Xamarin; inoltre, se un progetto non possiede al proprio interno una libreria di classi portabili, spesso, grazie all uso di Xamarin, la portabilità del codice viene effettuata automaticamente in maniera estremamente semplice. Xamarin supporta, anche, linguaggi di programmazioni nativi come, per esempio, Objective-C e librerie Java. Per aggiungere componenti di terze parti al progetto bisogna servirsi di Xamarin Component Store. Esso rappresenta il negozio dove poter acquistare o installare semplicemente componenti di terze parti; spesso, però, tali componenti hanno un costo di acquisto dalle poche decide di dollari fino ad arrivare a qualche migliaio di dollari. Un esempio di componenti di terze parti è rappresentato nella seguente figura: Ci sono più di cento componenti disponibili per migliorare le applicazioni mobile ; basta selezionare il componente di proprio interesse al seguente link Ogni componente è completo di esempi, video dimostrativo, recensioni e altre informazioni delle quali si ha bisogno prima di acquistarlo. 34 Carlo Iannò

37 Alcune delle caratteristiche più importanti utilizzate dalle applicazioni mobile di oggi si basano sui nuovi tipi di dati che possono essere acquisiti dai nostri dispositivi. Caratteristiche come la posizione Global Positioning System (GPS) e l utilizzo della fotocamera sono punti di forza per alcune applicazioni, come, per esempio, Istagram, Twitter, etc. È difficile sviluppare applicazioni e non utilizzare alcune caratteristiche che i dispositivi offrono; è, quindi, necessario esplorare le opzioni per poter utilizzare queste nuove caratteristiche con Xamarin. Per semplificare lo sviluppo di queste caratteristiche su più piattaforme, Xamarin ha sviluppato una libreria chiamata Xamarin.Mobile. Essa offre una singola API per accedere ai contatti, alla posizione GPS, alla direzione cardinale, alla macchina fotografica, ad un album di foto e video, etc. Tale API si avvale anche di Task Parallel Libraries (TPL) per offrire un moderno C# il quale rende gli sviluppatori più produttivi rispetto a come lo sarebbero se utilizzassero il codice di sviluppo nativo. Grazie alla combinazione di C# e delle API si dà la possibilità agli sviluppatori di scrivere codice in maniera chiara, pulita e asincrona. Inoltre è possibile utilizzare lo stesso codice sulle varie piattaforme, come ios e Android. Per installare Xamarin.Mobile basta collegarsi al seguente indirizzo e aggiungere il componente Xamarin.Mobile ad un progetto, come mostrato nella seguente figura: Carlo Iannò 35

38 PRO E CONTRO E GARTNER MAGIC QUADRANT Il Magic Quadrant sviluppato da Gartner, azienda multinazionale leader nel settore della consulenza strategica, dell analisi e della ricerca nel campo dell Information Technology (IT), fornisce un analisi delle performance dei vendor (fornitori) appartenenti ad un determinato settore di mercato. L obiettivo principale è informare agli acquirenti di servizi e prodotti sulle aziende partner che meglio soddisfano le loro esigenze. Di seguito, possiamo analizzare la posizione di Xamarin sul Magic Quadrant di Gartner: 36 Carlo Iannò

39 Tenendo in considerazione gli aspetti pristencipali e gli strumenti di Xamarin valutiamo un bilancio generale, analizzando alcuni punti positivi e negativi. File collegati. Pro: stesso codice su tutte le piattaforme; si possono usare le direttive preprocessore; si può usare codice specifico per le piattaforme. Contro: si devono gestire più progetti. Direttive preprocessore. Pro: si può inserire codice specifico per ogni piattaforma. Contro: codice non molto pulito. Librerie portabili. Pro: un unica libreria per tutte le piattaforme, utilizzo della sola classe disponibile su tutte le piattaforme. Contro: non si possono usare le direttive preprocessore; non si può usare codice specifico per le piattaforme. Progetto collegato. Pro: auto collegamento ai file. Contro: tutti i progetti devono essere nella stessa soluzione. CONCLUSIONI Alla luce dello studio effettuato in questo capitolo si può affermare che per sviluppare applicazioni mobile Cross-Platform, è necessario servirsi di software adeguati, che consentono la massima flessibilità del codice. Come si è potuto vedere in questo capitolo, l utilizzo del linguaggio di programmazione C#, combinato alle potenzialità del software Xamarin, migliora nettamente le prestazioni e semplifica il lavoro degli sviluppatori. Carlo Iannò 37

40 38 Carlo Iannò

41 3. ADOBE PHONEGAP E APACHE CORDOVA In questo capitolo verrà illustrato il funzionamento dei framework open source Adobe PhoneGap e Apache Cordova. In particolare, verranno elencati i principali aspetti sui quali sono basati tali framework, definendo innanzitutto il perché vengono utilizzati, le funzionalità offerte, i tool e le tecnologie sui quali sono basati. Successivamente verranno descritti i pregi e difetti di entrambi i framework e verrà analizzata la loro posizione sul Gartner Magic Quadrant. 1 Adobe PhoneGap 2 Apache Cordova 1 Carlo Iannò 39

42 ADOBE PHONEGAP PhoneGap è un progetto open source della Nitobi Software, un azienda che crea applicazioni mobile e Web application da diversi anni. Esso consiste in un insieme di librerie statiche che permettono di sviluppare velocemente, ed in maniera molto efficace, applicazioni mobile che appartengono a diverse famiglie. La filosofia di base di tale software consiste nel realizzare lo slogan Write once, port everywhere. PhoneGap si propone di focalizzare gli sforzi degli sviluppatori sull'applicazione piuttosto che perdere tempo ad adattarla ad ogni piattaforma. Per poter realizzare un'applicazione con Phonegap è necessario conoscere HTML, CSS e JavaScript. Il porting verso le varie piattaforme viene effettuato installando gli ambienti di sviluppo relativi e compilando la WebApp interessata. I requisiti sono quindi quelli di installare le SDK dove richiesto, assieme agli strumenti per consentire la compilazione delle applicazioni. Adobe Phonegap è disponibile secondo delle licenze open source; come utente di Phone Gap è possibile scegliere di utilizzare la licenza Berkeley Software Distribution (BSD), ovvero una licenza che riflette l idea più ampia del dono inteso in senso liberale, ma senza la programmaticità. Più specificatamente, tale licenza è limitata a fotografare il presente. Un altro esempio è la licenza Massachusetts Institute of Technology (MIT), ovvero una licenza che permette il riutilizzo nel software proprietario sotto la condizione che essa sia distribuita con tale software e che rispetti le condizioni di utilizzo ed impedendone altre, come, per esempio, la modifica, la condivisione, la ridistribuzione, etc. Oggi sono disponibili molte applicazioni commerciali le quali sono state realizzate tramite PhoneGap; è possibile trovare una lista di tali applicazioni sul sito Web nella sezione apps: 40 Carlo Iannò

43 PERCHÉ PHONEGAP Sviluppare un'applicazione per tutte le maggiori piattaforme richiede la conoscenza dei linguaggi delle stesse, l'installazione di IDE (Integrated Development Enviroment) per lo sviluppo, la presenza di personale con delle competenze specifiche, etc. La realizzazione di un'applicazione su varie piattaforme richiede, quindi, tempo e denaro, per reclutare il personale, formarlo se necessario e, preparare gli ambienti di sviluppo per ogni piattaforma. A causa delle consistenti risorse da dover mettere in gioco, ciò che alcune aziende fanno è sviluppare la propria applicazione solo per le piattaforme più utilizzate, o concentrare gli sforzi sulle piattaforme con meno restrizioni. Ciò, ovviamente, porterebbe a ridurre il potenziale mercato dell'applicazione, oltre che ad impedire automaticamente agli utenti di altre piattaforme di utilizzarla. Grazie a PhoneGap lo sviluppatore può dedicarsi maggiormente allo sviluppo della sua WebApp senza pensare agli intralci o impedimenti delle varie piattaforme. Chiaramente le possibilità dell'applicazione saranno limitate a quelle di un applicazione Web. Carlo Iannò 41

44 COME FUNZIONA PhoneGap fa da ponte tra il sistema operativo e la WebApp realizzata dallo sviluppatore. Si intuisce che occorre che dalla WebApp esista una modalità standard per invocare le API native in maniera indipendente dal tipo di piattaforma sottostante. PhoneGap è, infatti, un framework che permette ad una WebApp di invocare le API native mediante funzioni JavaScript. Un esempio potrebbe essere visualizzato nella seguente figura: Il vantaggio nell'utilizzo di questo framework è che esso fornisce l'aggancio tra la piattaforma native e la WebApp in modo che uno sviluppatore che non ha conoscenze specifiche sui linguaggi nativi possa dedicarsi allo sviluppo della WebApp con tecnologie standard. La caratteristica fondamentale di PhoneGap sta nel fatto che, una volta realizzata l'applicazione mobile, quest ultima riesce ad adattarsi a qualunque piattaforma supportata. PhoneGap userà il linguaggio nativo della piattaforma per accedere alle risorse hardware e software in modo da aggiungere le funzionalità di base al motore JavaScript e renderle, così, facilmente utilizzabili dall'applicazione come fossero tradizionali metodi di libreria. In base alla tipologia di piattaforma con la quale dovrà interfacciarsi, l'implementazione di aggancio sarà, di conseguenza, sviluppata in Objective C per iphone, in Java per Android, in C++ o C# per Windows Phone, etc. Tale implementazione è fornita dallo stesso framework; in pratica, esiste un runtime basato su WebKit4 che è il motore di browser come Safari e Google Chrome, in cui vengono iniettate le componenti statiche. Il risultato sarà un pacchetto composto da due elementi principali con differenti responsabilità che operano tra loro per fornire delle funzioni. 42 Carlo Iannò

45 Nel caso specifico il runtime si occupa di dialogare direttamente con il dispositivo; un esempio di architettura di un applicazione realizzata con PhoneGap potrebbe essere quella mostrata nel seguente schema: Partendo dal basso verso l alto, si può notare che la parte in blu è quella che riguarda il sistema operativo della piattaforma nativa. Ad un livello superiore troviamo il framework PhoneGap, anch esso fornito insieme alle API JavaScript. Nel sottolivello relativo al framework PhoneGap troviamo Embedded Browser, il quale incapsula le WebApp (HTML, CSS, JavaScript) e le API JavaScript. Ciò è stato fatto per mettere in evidenza che l'oggetto browser può essere aperto all'interno dell'applicazione che si sta sviluppando e, dunque, dentro PhoneGap. Per comportamento di default il browser viene aperto esternamente all'applicazione; di conseguenza, ad ogni richiesta di una pagina Web si ha l'apertura del Web browser. L'apertura di una pagina nell Embedded Browser nasconde la barra degli indirizzi nonché i pulsanti forniti dal browser di default; in questo modo si oscura in parte il fatto che si tratti di una pagina Web. Ciò è un vantaggio indiscutibile nel rendere l'esperienza più simile a quella di un'applicazione nativa. Per cui il pacchetto applicativo destinato alla distribuzione conterrà file statici come HTML, JavaScript, CSS e le classi native di aggancio. Il pacchetto dovrà essere opportunamente firmato prima di essere distribuito sullo Store ufficiale delle piattaforme di riferimento. Carlo Iannò 43

46 TOOL E TECNOLOGIE UTILIZZATE Lo sviluppo di un app richiede la sola conoscenza dei linguaggi come HTML, CSS, JavaScript. Questi tre linguaggi contribuiscono a creare la struttura della pagina Web (HTML), di personalizzarne il suo aspetto (CSS), di renderla dinamica (ovvero di fare in modo che il contenuto della pagina venga generato totalmente o parzialmente, al momento della richiesta ) e interattiva mediante il codice JavaScript. Nel seguito consideriamo quattro attori principali nell ambito di tali tecnologie, ovvero: HyperText Markup Language (HTML / HTML5); Cascading Style Sheets (CSS); JavaScript; Application Programming Interface (API). 44 Carlo Iannò

47 HyperText Markup Language (HTML) È il linguaggio predominante delle pagine Web. Per descrivere tali pagine viene usato un sistema di tag. I tag sono costituiti da parentesi angolate ( come <html>); il browser è programmato per riconoscere i tag e la loro funzione; un volta riconosciuti i tag, non li mostra nella pagina finale ma li utilizza per costruire la pagina. E' possibile inserire immagini, oggetti, creare moduli interattivi, etc. Esistono tag per strutturare il documento con link, intestazioni, liste, paragrafi e altri elementi. E' possibile inserire all'interno del codice della pagina altri linguaggi attivi; ad esempio, si può incorporare del codice JavaScript o utilizzare altri linguaggi più server side, come Personal Home Page (PHP) o JavaServer Pages (JSP) per svolgere compiti più complessi. Mediante tali linguaggi è possibile creare pagine Web con contenuto dinamico con l'utilizzo di codice Java incluso nella pagina HTML. Una variante, molto innovativa rispetto all HTML classico è HTML5; inizialmente, fino alla versione HTML4, nonché per creare una pagina Web era necessario utilizzare moltissimi tag <div >..</div> gli attributi id oppure class, per indicare la loro funzione, e caratterizzarli nel file CSS. Uno schema di una pagina strutturata con HTML4è il seguente: Con l evoluzione di HTML, e quindi con HTML5, nonostante quest ultimo linguaggio presenti le stesse separazioni concettuali, possiamo notare che gli attributi vengono rappresentati dai tag stessi. Carlo Iannò 45

48 Il markup per la pagina HTML5 è strutturato nel seguente modo: Tale markup fa riferimento alla seguente struttura: Una tale forma consente allo standard di essere retro compatibile, evitando scelte difficili agli sviluppatori Web. Oltre a questi cambiamenti nella struttura della pagina, vengono messi a disposizione alcuni tag aggiuntivi per gestire multimedialità e personalizzazione delle pagine. Un esempio potrebbero essere i seguenti tag: <canvas>; esso mette a disposizione uno spazio rettangolare di dimensione personalizzabile all interno del quale è possibile disegnare a piacere qualunque tipo di forma, immagine, animazione, etc. La creazione delle illustrazioni avverrà tramite primitive JavaScript. <audio> <video>; mediante questi tag è possibile includere e controllare contenuti multimediali. Tutto ciò era già possibile tramite Adobe Flash, ma ora, mediante JavaScript, è possibile gestire i file multimediali senza appesantire la pagina. 46 Carlo Iannò

49 Cascading Style Sheets (CSS) È un linguaggio che definisce lo stile, la formattazione e l'aspetto di un documento scritto in un linguaggio di markup. E' più comunemente usato assieme alle pagine Web scritte in HTML, ma può anche essere applicato ai documenti extensible Markup Language (XML). Il linguaggio definisce i comportamenti visivi di una pagina Web. Ad ogni elemento della pagina viene associata una serie di comandi che modicano l'aspetto dell'elemento stesso. e il suo comportamento all'interno della pagina. L'intero codice porta alla creazione di uno script che viene associato alla pagina stessa e definisce l'aspetto degli elementi in base ad alcune azioni dell'utente (spostamenti del mouse sopra elementi della pagina, click di alcuni elementi, etc). Un file CSS definisce il posizionamento, la colorazione, il comportamento del testo, degli elementi, e delle immagini. Mentre l'autore di un documento tipicamente associa quest ultimo ad uno specifico CSS, i lettori possono utilizzare un foglio di stile proprio e sovrascrivere quello che il proprietario ha specificato. Le specifiche del CSS sono aggiornate dal World Wide Web Consortium (W3C) che gestisce gli standard per le WebApp mobile. Carlo Iannò 47

50 JavaScript JavaScript è un linguaggio di programmazione interpretato con un rudimentale orientamento agli oggetti. Il suo ibiettivo è quello di consentire l'inserimento di contenuto eseguibile in una pagina Web. Ciò vuol dire che una pagina Web non presenta solo codice HTML classico, di tipo statico, ma può includere programmi dinamici che interagiscono con l'utente, controllano il browser e creano dinamicamente contenuti HTML. JavaScript può ottenere informazioni dall utente e dal browser stesso; inoltre, può interagire con l utente per migliorare l esperienza durante la navigazione. Per esempio può nascondere, mostrare o alterare le proprietà e gli attributi associati a particolari elementi della pagina. Un notevole esempio di JavaScript può essere la funzionalità del pulsante indietro, il quale si trova in qualunque browser e ci permette di tornare alla pagina esattamente precedente a quella visitata. Un problema abbastanza noto che uno sviluppatore riscontra praticamente quando utilizza il codice JavaScript è legato alla velocità. A chiunque è sicuramente capitato di provare ad aprire una pagina Web ricca di contenuti e notare del ritardo nella visualizzazione di quelli multimediali: spesso è a causa dell'uso pesante di codice JavaScript per la gestione di animazioni, navigazione, dinamicità della pagina. Lo stesso problema si è riscontrato nello sviluppo con PhoneGap; pagine contenenti molto codice JavaScript tendono a essere lente nel caricamento, soprattutto se pensiamo che a fare il rendering della pagina è il browser di un dispositivo mobile. Il problema è stato riscontrato sui vari dispositivi, in forma più o meno accentuata. Tuttavia, è possibile eseguire un test per calcolare un bilancio complessivo del dispositivo e per conoscere la velocità di esecuzione di codice JavaScript: è sufficiente collegarsi al seguente indirizzo: https://www.webkit.org/perf/sunspider/sunspider.html 48 Carlo Iannò

51 Di seguito vengono illustrati due Report Benchmark eseguiti sui principali dispositivi mobile e i principali browser che consentono l esecuzione di codice JavaScript. Carlo Iannò 49

52 Application Programming Interface (API) Il progetto Phonegap è sempre in via di sviluppo; la documentazione sulle API è aggiornata costantemente. Le funzionalità disponibili al momento, in base alla piattaforma utilizzata, sono illustrate nella seguente figura: Tale tabella ci aiuta ad avere un'idea di cosa è supportato e su che piattaforma; tuttavia, il sito ufficiale ricorda che aggiornamenti più frequenti sono presenti al seguente link: https://github.com/phonegap/phonegap/wiki 50 Carlo Iannò

53 PROGETTI ASSOCIATI E GARTNER MAGIC QUADRANT Per aiutare a migliorare l'applicazione finale occorre, inoltre, che esistono dei progetti che nello sviluppo possono tornare utili. Esistono vari strumenti utili che possono facilitare il lavoro dello sviluppatore. Un esempio di tali tool può essere visualizzato sul sito ufficiale al seguente link: Sono presenti framework JavaScript, API per lo sviluppo di giochi JavaScript, tool per disegnare widget. Alcuni di questi strumenti si sono rilevati utili; altri sono, comunque, degni di attenzione. Di seguito un elenco di tool che hanno riscosso maggiore successo: XUI. Framework JavaScript particolarmente stringato. E' utile per realizzare applicazioni per i browser più prestanti. Sencha/Sencha animation. Permette lo sviluppo di applicazioni Web che sembrano native per iphone e Android. JQuerymobile. Promette di fornire un'interfaccia utente unificata ad applicazioni Web per ogni tipo di piattaforma mobile. Ripple. Fornisce, mediante un'aggiunta a Google Chrome, il supporto per il testing della pagina realizzata su dispositivi mobile. E' possibile visualizzare l anteprima della pagina su diversi tipi di schermi simulati da questa applicazione. JQTouch. Plugin per JQuery per lo sviluppo Web su iphone e ipodtouch. Carlo Iannò 51

54 Nel seguito indichiamo in rosso la posizione di Adobe PhoneGap nel Magic Quadrant di Gartner di cui si è discusso nel Capitolo Carlo Iannò

55 APACHE CORDOVA Apache Cordova (come il suo predecessore Adobe PhoneGap), rappresenta un set di API che permette a uno sviluppatore di applicazioni mobile di accedere alle funzioni native dei dispositivi, come, ad esempio la fotocamera, l accelerometro, le coordinate GPS, il File System, etc. Grazie all uso combinato di codice Java Script e al framework UI come, ad esempio, JQuery Mobile, fa si che l applicazione venga generata semplicemente con l uso di HTML, CSS e JavaScript, seguendo il tradizionale approccio delle applicazioni Web. In altre parole, seguendo il tradizionale approccio, Apache Cordova si occuperà di tradurre un applicazione Web in un applicazione mobile. Utilizzando le API di Cordova, l applicazione potrà essere utilizzata senza la necessità di conoscere, e quindi di dover utilizzare, il codice nativo (Objective C, Java, etc). Cordova si basa su tecnologie Web, solitamente situate sul dispositivo stesso e non su un server remoto. È proprio l adozione di HTML, CSS e JavaScript che rappresenta la garanzia che l applicazione sia a tutti gli effetti, multipiattaforma e che il porting su dispositivi diversi non comporti, se non in minima parte, la necessità di modifiche al codice. Cordova, come anticipato, fornisce, quindi, un set di librerie JavaScript che possono essere invocate. Ogni chiamata verrà, poi, tramutata dal framework nella relativa chiamata in codice nativo in base al dispositivo di utilizzo. Il risultato di tale operazione è un informazione che risulterà essere uniforme, indipendentemente dalla piattaforma di utilizzo, e che metterà lo sviluppatore in condizione di disinteressarsi di quale sia l effettivo dispositivo di utilizzo finale. Apache Cordova è disponibile per le seguenti piattaforme: ios, Android, Blackberry, Windows Phone, Palm WebOS, Bada e Symbian. Carlo Iannò 53

LA TUA PRIMA APP CON CORDOVA

LA TUA PRIMA APP CON CORDOVA LA TUA PRIMA APP CON CORDOVA Dedicato a. Gianluca ed Enza, due persone speciali Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 2 COPYRIGHT La tua prima APP con CORDOVA Tutti i diritti riservati. Nessuna

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

Corso App modulo Android. Antonio Gallo info@laboratoriolibero.com

Corso App modulo Android. Antonio Gallo info@laboratoriolibero.com Corso App modulo Android Antonio Gallo info@laboratoriolibero.com Strumentazione: PC + smartphone Android + cavo micro USB per connessione Framework Phonegap SDK di Android JDK (Java) Eclipse (opzionale)

Dettagli

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13 Architectural & Engineering Software L INGEGNERE NELLE NUVOLE App, WEB App e Cloud ing. Sauro Agostini Mitterand 1981 Reagan Battaglin Alice IBM PC 5150 Alonso C ERA UNA VOLTA IL DOS Non è una rivoluzione,

Dettagli

Mobile Apps. Web Solutions. Design & Communication. Consulting Services. Software Development. Business Intelligence

Mobile Apps. Web Solutions. Design & Communication. Consulting Services. Software Development. Business Intelligence Mobile Apps Web Solutions Design & Communication Consulting Services Software Development Business Intelligence PROFILO AZIENDALE STORIA Di-SiDE s.r.l. nasce nel Marzo 2011 come startup per inserirsi nel

Dettagli

Processo di Sviluppo delle Applicazioni

Processo di Sviluppo delle Applicazioni Processo di Sviluppo delle Applicazioni La realizzazione di un applicazione come Vivere Ateneo App Domenico Zarcone Ognuno ha il suo ambiente Quali sono gli ambienti integrati di sviluppo più utilizzati?

Dettagli

Progettazione e Sviluppo dell Applicazione Web Share Mobile per Dispositivi Mobili Multipiattaforma. Elaborato di Laurea di: Marco Stanzani

Progettazione e Sviluppo dell Applicazione Web Share Mobile per Dispositivi Mobili Multipiattaforma. Elaborato di Laurea di: Marco Stanzani UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria Enzo Ferrari Sede di Modena Corso di Laurea Specialistica in Ingegneria Informatica Progettazione e Sviluppo dell Applicazione Web

Dettagli

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 White paper Novembre 2007 Per informazioni aggiornate, visitare l indirizzo www.microsoft.com/italy/vstudio È possibile che a questo

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

phonegap cross-platform made easy

phonegap cross-platform made easy phonegap cross-platform made easy piattaforme di interesse Android iphone/ipad BlackBerry Windows Phone/CE HTML5 => ~ 99% sviluppo web Caratteristiche: Modello sviluppo: HTML5 + JavaScript UI web: HTML

Dettagli

App mobile, la soluzione efficace ed efficiente. Un nuovo modello di fruizione dei servizi, non più statico ma in mobilità.

App mobile, la soluzione efficace ed efficiente. Un nuovo modello di fruizione dei servizi, non più statico ma in mobilità. Mobile APP Un nuovo modello di fruizione dei servizi, non più statico ma in mobilità. Negli ultimi 5 anni la penetrazione dei device mobili (smartphone e tablet) ha subito una crescita vertiginosa (ad

Dettagli

VS002 -Da Windows ad Android e ios in 60 minuti con Xamarin

VS002 -Da Windows ad Android e ios in 60 minuti con Xamarin VS002 -Da Windows ad Android e ios in 60 minuti con Xamarin presenta Corrado Cavalli "Bug innovator" @ Gaia corrado@mvps.org @corcav blog.corradocavalli.com www.wpc2015.it info@wpc2015.it - +39 02 365738.11

Dettagli

Novità di Visual Studio 2008

Novità di Visual Studio 2008 Guida al prodotto Novità di Visual Studio 2008 Introduzione al sistema di sviluppo di Visual Studio Visual Studio Team System 2008 Visual Studio Team System 2008 Team Foundation Server Visual Studio Team

Dettagli

Corso di formazione CerTIC Tablet

Corso di formazione CerTIC Tablet Redattore prof. Corso di formazione CerTIC Tablet Dodicesima Dispensa Comitato Tecnico Scientifico: Gruppo Operativo di Progetto CerticAcademy Learning Center, patrocinato dall assessorato al lavoro e

Dettagli

DA DEFINIRE Sede del corso: Presso GI Formazione in Piazza IV novembre 5, Milano Orari dalle 9.00 alle 13.00 e dalle 14.00 alle 18.

DA DEFINIRE Sede del corso: Presso GI Formazione in Piazza IV novembre 5, Milano Orari dalle 9.00 alle 13.00 e dalle 14.00 alle 18. PERIODO : DA DEFINIRE Sede del corso: Presso GI Formazione in Piazza IV novembre 5, Milano Orari dalle 9.00 alle 13.00 e dalle 14.00 alle 18.00 A CHI E RIVOLTO IL CORSO Questo progetto si rivolge a tutti

Dettagli

CLOUD COMPUTING. Che cos è il Cloud

CLOUD COMPUTING. Che cos è il Cloud CLOUD COMPUTING Che cos è il Cloud Durante la rivoluzione industriale, le imprese che si affacciavano per la prima volta alla produzione dovevano costruirsi in casa l energia che, generata da grandi macchine

Dettagli

Realizzazione di un prototipo di un software web based per la gestione di un inventario comunale

Realizzazione di un prototipo di un software web based per la gestione di un inventario comunale tesi di laurea inventario comunale Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo Ing. Luigi Pontillo candidato Michele Vitelli Matr. 534 2170 Redazione dell Inventario

Dettagli

Mobile & Technology. Area di formazione. Corso ios base. Corso ios avanzato. Il mondo delle App: idee, creatività, business.

Mobile & Technology. Area di formazione. Corso ios base. Corso ios avanzato. Il mondo delle App: idee, creatività, business. Area di formazione Mobile & Technology 01 02 03 04 05 Corso ios base Corso ios avanzato Il mondo delle App: idee, creatività, business Progetto App AngularJS - Up and running 01 Corso ios base Ore: 24

Dettagli

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE INTRODUZIONE L ingegneria del software è la disciplina tecnologica e gestionalerelativa alla realizzazione sistematica e alla manutenzione di un software rispettando

Dettagli

Pieces of Technology at your service. dottesttm

Pieces of Technology at your service. dottesttm Pieces of Technology at your service dottesttm DOTNET - AUTOMATIZZAZIONE DELL ANALISI STATICA, CODE REVIEW, TEST UNIT dottest è una soluzione di test di sviluppo integrato per automatizzare una vasta gamma

Dettagli

INTRODUZIONE ALLE PIATTAFORME

INTRODUZIONE ALLE PIATTAFORME INTRODUZIONE ALLE PIATTAFORME Android ios Windows Phone 8 Android 2 Cos è Android? Un moderno open-source sistema operativo Componenti: Linux kernel Java Core applications 3 Perché è stato un successo

Dettagli

Sicurezza accessi, su software e piattaforme diverse, anche da dispositivi mobili, com è possibile?

Sicurezza accessi, su software e piattaforme diverse, anche da dispositivi mobili, com è possibile? Rimini, 1/2015 Sicurezza accessi, su software e piattaforme diverse, anche da dispositivi mobili, com è possibile? Le configurazioni con Server e desktop remoto (remote app), che possa gestire i vostri

Dettagli

Ambiente Zebra Link-OS versione 2.0

Ambiente Zebra Link-OS versione 2.0 Ambiente Zebra Link-OS versione 2.0 Per rispondere ad aspettative in costante evoluzione e soddisfare la crescente domanda di dispositivi mobili, intelligenti e connessi al cloud, Zebra Technologies ha

Dettagli

www.italiancpp.org Conoscete Windows Bridge?

www.italiancpp.org Conoscete Windows Bridge? Conoscete Windows Bridge? Con Windows 8, Microsoft ha introdotto Windows Runtime (WinRT), un'evoluzione dell app model di Windows, che doveva essere un'architettura applicativa comune, ma non lo è stato

Dettagli

Area di formazione. Mobile & Technology. Ingolosito dalle nuove tecnologie? Appassionato di sviluppo App e Mobile? Corso ios avanzato Swift

Area di formazione. Mobile & Technology. Ingolosito dalle nuove tecnologie? Appassionato di sviluppo App e Mobile? Corso ios avanzato Swift Area di formazione Mobile & Technology Ingolosito dalle nuove tecnologie? Appassionato di sviluppo App e Mobile? 01 02 03 04 05 Corso ios base Swift Corso ios avanzato Swift AngularJS Up and running Ideare

Dettagli

Windows Azure. introduzione. 16 Maggio 2013. Gianni Rosa Gallina giannishub@hotmail.com. Fabrizio Accatino fhtino@gmail.com

Windows Azure. introduzione. 16 Maggio 2013. Gianni Rosa Gallina giannishub@hotmail.com. Fabrizio Accatino fhtino@gmail.com 16 Maggio 2013 Windows Azure introduzione Gianni Rosa Gallina giannishub@hotmail.com Twitter: @giannirg Blog: http://giannishub.cloudapp.net/it/ Fabrizio Accatino fhtino@gmail.com Twitter: @fhtino Sito

Dettagli

Risorsa N 037838. Master in web server e architetture di rete e protocolli

Risorsa N 037838. Master in web server e architetture di rete e protocolli Risorsa N 037838 DATI ANAGRAFICI: Nato nel : 1974 Disponibile su : Torino ISTRUZIONE E CERTIFICAZIONI: Master in web server e architetture di rete e protocolli LINGUE STRANIERE: Inglese Discreto COMPETENZE

Dettagli

La posta elettronica in cloud

La posta elettronica in cloud La posta elettronica in cloud www.kinetica.it Cosa significa avere la posta elettronica in cloud? I tuoi archivi di posta non sono residenti su un computer o un server della tua rete, ma su un server di

Dettagli

Sviluppare applicazioni per Windows Phone

Sviluppare applicazioni per Windows Phone Sviluppare applicazioni per Windows Phone Daniele Bochicchio - Cristian Civera - Marco De Sanctis - Alessio Leoncini - Marco Leoncini ISBN: 9788820347697 http://books.aspitalia.com/windows-phone/ Contenuti

Dettagli

Sviluppo di applicazioni mobili su piattaforma Maemo

Sviluppo di applicazioni mobili su piattaforma Maemo tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Marcello Cinque candidato Giovanni Fortini Matr. 534/2169 Contesto e contributo Sistemi operativi per dispositivi mobili Sviluppo di un applicazione

Dettagli

Portafoglio Silk: soluzioni leggere per test, sviluppo e gestione

Portafoglio Silk: soluzioni leggere per test, sviluppo e gestione Portafoglio : soluzioni leggere per test, sviluppo e gestione Leggere Includono solo le funzionalità effettivamente necessarie Convenienti Gratuite e con licenze flessibili Potenti Soluzioni software intuitive

Dettagli

Ambiente Zebra Link-OS versione 2.0

Ambiente Zebra Link-OS versione 2.0 Ambiente Zebra Link-OS versione 2.0 Per rispondere ad aspettative in costante evoluzione e soddisfare la crescente domanda di dispositivi mobili, intelligenti e connessi al cloud, Zebra Technologies ha

Dettagli

Introduzione ad Android

Introduzione ad Android Introduzione ad Android Android Day 15 dicembre 2014 Oggi parleremo di Il mondo mobile oggi Perché scegliere la piattaforma Android Possibilità di lavoro Creare un App Come iniziare lo sviluppo Consigli

Dettagli

Confronto tra VMware Zimbra e le principali piattaforme di posta elettronica e collaborazione

Confronto tra VMware Zimbra e le principali piattaforme di posta elettronica e collaborazione Confronto tra VMware Zimbra e le principali piattaforme di posta elettronica e collaborazione W H I T E PA P E R : Z I M B R A E L A C O N C O R R E N Z A Introduzione La posta elettronica è un'applicazione

Dettagli

Vi auguriamo un esperienza proficua e positiva con Oracle Siebel CRM On Demand!

Vi auguriamo un esperienza proficua e positiva con Oracle Siebel CRM On Demand! Introduzione Qui di seguito vengono esposte le risposte alle domande più frequenti relative a Oracle Siebel CRM On Demand. Inoltre, il Solutions Launchpad che contiene il link a questo documento offre

Dettagli

Un operatore di telefonia mobile accelera il time-to-market per una soluzione di social networking innovativa

Un operatore di telefonia mobile accelera il time-to-market per una soluzione di social networking innovativa Piattaforma Windows Azure Case study sulle soluzioni per i clienti Un operatore di telefonia mobile accelera il time-to-market per una soluzione di social networking innovativa Panoramica Paese o regione:

Dettagli

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved WEB TECHNOLOGY Il web connette LE persone Indice «Il Web non si limita a collegare macchine, ma connette delle persone» Il Www, Client e Web Server pagina 3-4 - 5 CMS e template pagina 6-7-8 Tim Berners-Lee

Dettagli

Piattaforma FaD Formazione a distanza. Manuale di consultazione rapida per l utilizzo della piattaforma di. formazione a distanza di EFA srl

Piattaforma FaD Formazione a distanza. Manuale di consultazione rapida per l utilizzo della piattaforma di. formazione a distanza di EFA srl Piattaforma FaD Formazione a distanza Manuale di consultazione rapida per l utilizzo della piattaforma di formazione a distanza di EFA srl 1 Indice generale 1. Scopo del documento 2. Definizioni e abbreviazioni

Dettagli

SCELTA DEL TEST DA ESEGUIRE

SCELTA DEL TEST DA ESEGUIRE SCELTA DEL TEST DA ESEGUIRE Tenete il passo dei cicli di rilascio sempre più veloci. Scoprite l automazione con il tocco umano. ESECUZIONE DI UN TEST 26032015 Test funzionali Con Borland, tutti i membri

Dettagli

Introduzione alla famiglia di soluzioni Windows Small Business Server

Introduzione alla famiglia di soluzioni Windows Small Business Server Introduzione alla famiglia di soluzioni Windows Small Business Server La nuova generazione di soluzioni per le piccole imprese Vantaggi per le piccole imprese Progettato per le piccole imprese e commercializzato

Dettagli

Una soluzione di collaborazione completa per aziende di medie dimensioni

Una soluzione di collaborazione completa per aziende di medie dimensioni Una soluzione di collaborazione completa per aziende di medie dimensioni La tua azienda è perfettamente connessa? È questa la sfida cruciale dell attuale panorama aziendale virtuale e mobile, mentre le

Dettagli

How I met your platform PROGETTAZIONE E SVILUPPO DI APP CROSS-PLATFORM CON XAMARIN E MVVMCROSS

How I met your platform PROGETTAZIONE E SVILUPPO DI APP CROSS-PLATFORM CON XAMARIN E MVVMCROSS How I met your platform PROGETTAZIONE E SVILUPPO DI APP CROSS-PLATFORM CON XAMARIN E MVVMCROSS Ringraziamenti The Diligence: http://www.thediligence.net Evoluzione Telematica: http://www.evoltel.it Teraplan:

Dettagli

ERP Commercio e Servizi

ERP Commercio e Servizi ERP Commercio e Servizi Sistema informativo: una scelta strategica In questi ultimi anni hanno avuto grande affermazione nel mercato mondiale i cosiddetti sistemi software ERP. Tali sistemi sono in grado

Dettagli

LA TECHNOLOGY TRANSFER PRESENTA GERHARD LO SVILUPPO APPLICATIVO NELL ERA DEL CLOUD E DEL MOBILE

LA TECHNOLOGY TRANSFER PRESENTA GERHARD LO SVILUPPO APPLICATIVO NELL ERA DEL CLOUD E DEL MOBILE LA TECHNOLOGY TRANSFER PRESENTA GERHARD BAYER LO SVILUPPO APPLICATIVO NELL ERA DEL CLOUD E DEL MOBILE ROMA 4-5 NOVEMBRE 2015 RESIDENZA DI RIPETTA - VIA DI RIPETTA, 231 info@technologytransfer.it www.technologytransfer.it

Dettagli

ICT TRAINING Giornata Formativa di Alfabetizzazione Digitale SVILUPPO DI UNA APP

ICT TRAINING Giornata Formativa di Alfabetizzazione Digitale SVILUPPO DI UNA APP ICT TRAINING Giornata Formativa di Alfabetizzazione Digitale SVILUPPO DI UNA APP SVILUPPO DI UNA APP Premessa Breve guida per lo sviluppo di App che segue le varie fasi di realizzazione. Nelle quattro

Dettagli

JCLOUD... PORTA IL TUO BUSINESS SULLA NUVOLA

JCLOUD... PORTA IL TUO BUSINESS SULLA NUVOLA JCloud Web Desktop JCLOUD... PORTA IL TUO BUSINESS SULLA NUVOLA OVUNQUE TI TROVI JCloud è il desktop che ti segue ovunque, è sufficiente una connessione ad internet ed un browser HTML5 per accedere ai

Dettagli

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione UNIVERSITA DEGLI STUDI DI FERRARA Corso di Laurea in informatica Anno Accademico 2011-2012 Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione Relatore:

Dettagli

Un opzione innovativa per uno sviluppo più rapido su. ipad e iphone.

Un opzione innovativa per uno sviluppo più rapido su. ipad e iphone. Un opzione innovativa per uno sviluppo più rapido su ipad e iphone Per soddisfare le esigenze di miglioramento dei processi aziendali con soluzioni personalizzate per ipad/ iphone. iepilogo Le organizzazioni

Dettagli

DUCKMA SRL BACKEND DEVELOPER

DUCKMA SRL BACKEND DEVELOPER BACKEND DEVELOPER applicazioni Mobile. nostri valori e la nostra visione del business. Persone con iniziativa, creatività, curiosità ed entusiasmo, uniti ad ottime capacità relazionali e un forte spirito

Dettagli

IBM System i5 520 Express

IBM System i5 520 Express Un unico sistema adatto a qualsiasi applicazione, con eccezionale rapporto prezzo/prestazioni IBM System i5 520 Express Caratteristiche principali Sistema operativo, database e Funzioni integrate di tool

Dettagli

Gestione efficiente dell'impresa Attivazione di una piattaforma "cloud" per le PMI

Gestione efficiente dell'impresa Attivazione di una piattaforma cloud per le PMI Progetto Gestione efficiente dell'impresa Attivazione di una piattaforma "cloud" per le PMI Martedì 13 novembre 2012 Il Progetto è realizzato con il contributo finanziario della Camera di Commercio di

Dettagli

Guida alle offerte di finanziamento per le medie imprese

Guida alle offerte di finanziamento per le medie imprese IBM Global Financing Guida alle offerte di finanziamento per le medie imprese Realizzata da IBM Global Financing ibm.com/financing/it Guida alle offerte di finanziamento per le medie imprese La gestione

Dettagli

SERVER E VIRTUALIZZAZIONE. Windows Server 2012. Guida alle edizioni

SERVER E VIRTUALIZZAZIONE. Windows Server 2012. Guida alle edizioni SERVER E VIRTUALIZZAZIONE Windows Server 2012 Guida alle edizioni 1 1 Informazioni sul copyright 2012 Microsoft Corporation. Tutti i diritti sono riservati. Il presente documento viene fornito così come

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere

Dettagli

phonegap cross-platform made easy

phonegap cross-platform made easy phonegap cross-platform made easy piattaforme di interesse Android iphone/ipad BlackBerry Windows Phone/CE HTML5 => ~ 99% sviluppo web Caratteristiche: Modello sviluppo: HTML5 + JavaScript UI web: HTML

Dettagli

Realizzazione di un sistema di logging prototipale per la piattaforma

Realizzazione di un sistema di logging prototipale per la piattaforma tesi di laurea Realizzazione di un sistema di logging prototipale per la piattaforma Android Anno Accademico 2011 / 2012 relatore Ch.mo prof. Marcello Cinque candidato Dario De Meis Matr. 528 / 741 Smartphone

Dettagli

phonegap cross-platform made easy

phonegap cross-platform made easy phonegap cross-platform made easy piattaforme di interesse Android iphone/ipad BlackBerry Windows Phone/CE HTML5 => ~ 99% sviluppo web Caratteristiche: Modello sviluppo: HTML5 + JavaScript UI web: HTML

Dettagli

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

Dettagli

1. Arduino va di moda.

1. Arduino va di moda. 1. Arduino va di moda. Arduino è una piattaforma hardware open source programmabile, interamente realizzata in Italia, che permette la prototipazione rapida e l'apprendimento veloce dei principi fondamentali

Dettagli

Mobile GIS in Eni e Future Architetture di Cloud Computing a Supporto del Business

Mobile GIS in Eni e Future Architetture di Cloud Computing a Supporto del Business Mobile GIS in Eni e Future Architetture di Cloud Computing a Supporto del Business Carlo Michele Garbujo Eni e&p Abstract Oltre un anno fa eni e&p ha rilasciato una web application, denominata infoshop

Dettagli

Presentazione della famiglia openshare 2.2. 4/30/2003 Infosquare.com 1

Presentazione della famiglia openshare 2.2. 4/30/2003 Infosquare.com 1 Presentazione della famiglia 2.2 4/30/2003 Infosquare.com 1 La piattaforma Un ambiente completo e versatile per la costruzione di portali aziendali Una piattaforma integrata di content management per raccogliere,

Dettagli

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz Breve introduzione allo sviluppo WEB a cura di Ciro Attanasio - ciro.attanasio@email.cz Partiamo (1 di 1) Come funziona il WEB e quali tecnologie lo compongono Cos è un Client (1 di 2) Un client, in informatica,

Dettagli

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli Scuola Professionale e Filologica Geom. F.Borgogna Vercelli Corsi ANDROID 2013/2014 Benvenuti nel mondo dinamico dello sviluppo di applicazioni per smartphone e tablet Android Corsi ANDROID 2013/2014 L

Dettagli

Applicazioni mobile Perchè investire e quali tecnologie usare

Applicazioni mobile Perchè investire e quali tecnologie usare GIANLUCA VAGLIO Applicazioni mobile Perchè investire e quali tecnologie usare 2010 Gianluca Vaglio www.gianlucavaglio.net Avvertenze legali AVVERTENZE LEGALI Copyright 2010 Gianluca Vaglio. La presente

Dettagli

Nuova ECDL ONLINE COLLABORATION

Nuova ECDL ONLINE COLLABORATION PATENTE EUROPEA DEL COMPUTER Nuova ECDL ONLINE COLLABORATION CONCETTI FONDAMENTALI USO DI DISPOSITIVI MOBILI APPLICAZIONI SINCRONIZZAZIONE 4. COLLABORAZIONE MOBILE 4.1. Concetti fondamentali 4.1.1 Identificare

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Corso di Informatica per la Gestione Aziendale

Corso di Informatica per la Gestione Aziendale Corso di Informatica per la Gestione Aziendale Anno Accademico: 2008/2009 DOCENTI: Prof.ssa Cecilia Rossignoli Dott. Gianluca Geremia Università degli Studi di Verona Dipartimento di Economia Aziendale

Dettagli

Sistemi Mobili e Wireless Android Introduzione alla piattaforma

Sistemi Mobili e Wireless Android Introduzione alla piattaforma Sistemi Mobili e Wireless Android Introduzione alla piattaforma Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Cos'è Android?

Dettagli

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche Il Cloud Computing La visualizzazione nella Cloud Problematiche Virtualizzazione della GPU Front end Virtualization

Dettagli

Virtualizzazione e Cloud Computing

Virtualizzazione e Cloud Computing Virtualizzazione e Cloud Computing 12 marzo 2015 Claudio Bizzarri claudio@bizzarri.net Ordine degli Ingegneri di Pistoia La virtualizzazione Macchine reali e macchine virtuali Vantaggi della virtualizzazione

Dettagli

Introduzione. A chi si rivolge questo libro. Gli argomenti trattati

Introduzione. A chi si rivolge questo libro. Gli argomenti trattati Introduzione Il successo straordinario di iphone e ipad degli ultimi quattro anni ha confermato che gli sviluppatori di applicazioni si trovano al centro di un nuovo mondo di soluzioni mobili, sofisticate

Dettagli

SEWEB PRIVATE CLOUD SERVICE SISTEMA CLOUD AZIENDALE

SEWEB PRIVATE CLOUD SERVICE SISTEMA CLOUD AZIENDALE SEWEB PRIVATE CLOUD SERVICE SISTEMA CLOUD AZIENDALE Sommario TIPOLOGIE DI CLOUD... 4 PRIVATE CLOUD... 4 COMMUNITY CLOUD... 4 PUBLIC CLOUD... 4 HYBRID CLOUD... 4 CARATTERISTICHE DEL SERVIZIO OFFERTO...

Dettagli

La Login in Prestito!!Disponbilità Tesi. Categorie di Progetti di Ingegneria del Software

La Login in Prestito!!Disponbilità Tesi. Categorie di Progetti di Ingegneria del Software Draft versione 1.1 Categorie di Progetti di Ingegneria del Software Tutti i temi Progettuali proposti rientrano in una delle seguenti categorie. 1. Temi sull'elaborazione di Dati Multimediali Temi su Audio,

Dettagli

Parla, Secure Cloud Email

Parla, Secure Cloud Email Parla, Secure Cloud Email Posta elettronica sicura, Calendario, Contatti, Attività, condivisione di file e Note tra i dispositivi Parla con messaggistica istantanea sicura integrata con differenti livelli

Dettagli

Abstract. Reply e il Cloud Computing: la potenza di internet e un modello di costi a consumo. Il Cloud Computing per Reply

Abstract. Reply e il Cloud Computing: la potenza di internet e un modello di costi a consumo. Il Cloud Computing per Reply Abstract Nei nuovi scenari aperti dal Cloud Computing, Reply si pone come provider di servizi e tecnologie, nonché come abilitatore di soluzioni e servizi di integrazione, volti a supportare le aziende

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

www.zetaqlab.com C-Light Web-based Management Software

www.zetaqlab.com C-Light Web-based Management Software www.zetaqlab.com C-Light Web-based Management Software WEB-BASED MANAGEMENT SOFTWARE C-Light è l applicazione per la gestione locale (intranet) e remota (internet) di ogni impianto d automazione integrabile

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

Le soluzioni per lo sviluppo di applicazioni Web e Mobile in ambiente Power i.

Le soluzioni per lo sviluppo di applicazioni Web e Mobile in ambiente Power i. Le soluzioni per lo sviluppo di applicazioni Web e Mobile in ambiente Power i. Elena M. Brambilla Technical Account Manager - Zend Technologies Chi sono io. Elena M. Brambilla Technical Account & Training

Dettagli

I N F I N I T Y Z U C C H E T T I INFINITY APPLICA A TION FRAMEWORK APPLICA

I N F I N I T Y Z U C C H E T T I INFINITY APPLICA A TION FRAMEWORK APPLICA I N F I N I T Y Z U C C H E T T I INFINITY APPLICATION FRAMEWORK Infinity Application Framework Una nuova e diversa interpretazione delle soluzioni applicative aziendali Infinity Application Framework

Dettagli

VIDEO COMUNICAZIONE VIA WEB: LA NOSTRA SOLUZIONE PER LEZIONI IN AULA VIRTUALE, SEMINARI E RIUNIONI A DISTANZA

VIDEO COMUNICAZIONE VIA WEB: LA NOSTRA SOLUZIONE PER LEZIONI IN AULA VIRTUALE, SEMINARI E RIUNIONI A DISTANZA Grifo multimedia Srl Via Bruno Zaccaro, 19 Bari 70126- Italy Tel. +39 080.460 2093 Fax +39 080.548 1762 info@grifomultimedia.it www.grifomultimedia.it VIDEO COMUNICAZIONE VIA WEB: LA NOSTRA SOLUZIONE PER

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Conoscere il concetto di espressione 2 1 Introduzione

Dettagli

Aumento della produttività e riduzione dei costi grazie alla collaborazione di nuova generazione

Aumento della produttività e riduzione dei costi grazie alla collaborazione di nuova generazione White paper aziendale NOVELL OPEN WORKGROUP SUITE Aumento della produttività e riduzione dei costi grazie alla collaborazione di nuova generazione Ottimizzazione delle abilità dei dipendenti grazie agli

Dettagli

Soluzioni innovative per la semplificazione dell infrastruttura IT. Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems

Soluzioni innovative per la semplificazione dell infrastruttura IT. Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems Soluzioni innovative per la semplificazione dell infrastruttura IT Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems Caratteristiche principali La flessibilità e la scalabilità della

Dettagli

Jaspersoft BI Suite di BI flessibile e conveniente

Jaspersoft BI Suite di BI flessibile e conveniente Jaspersoft BI Suite di BI flessibile e conveniente Jaspersoft BI è la suite di Business Intelligence (BI) più usata al mondo grazie alle funzionalità complete, all architettura leggera e flessibile e al

Dettagli

Gestione dei dati di prodotto

Gestione dei dati di prodotto Gestione dei dati di prodotto Introduzione a PTC Windchill PDM Essentials TM Negli odierni ambienti di progettazione e di produzione altamente competitivi e geograficamente distribuiti, la gestione efficace

Dettagli

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio L altra strada per il BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 Il BPM Il BPM (Business Process Management) non è solo una tecnologia, ma più a grandi linee una disciplina

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

Informativa e consenso per l utilizzo delle Google Apps for Education ISMC ALLEGATO 2 ALLEGATO 2 PRIVACY DI GOOGLE

Informativa e consenso per l utilizzo delle Google Apps for Education ISMC ALLEGATO 2 ALLEGATO 2 PRIVACY DI GOOGLE Pag. 1 di 8 PRIVACY DI GOOGLE (http://www.google.com/intl/it/policies/privacy/ Ultima modifica: 19 agosto 2015) I nostri servizi possono essere utilizzati in tanti modi diversi: per cercare e condividere

Dettagli

Piattaforma e-learning Moodle. Manuale ad uso dello studente. Vers. 1 Luglio 09

Piattaforma e-learning Moodle. Manuale ad uso dello studente. Vers. 1 Luglio 09 Piattaforma e-learning Moodle Manuale ad uso dello studente Vers. 1 Luglio 09 Sommario 1. Introduzione...2 1.1 L ambiente...2 1.2 Requisiti di sistema...4 2. Come accedere alla piattaforma...4 2.1 Cosa

Dettagli

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni White paper Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni Panoramica Questo documento analizza il supporto alla programmabilità nell'infrastruttura ACI (Application Centric

Dettagli

ADA. E learning e open source

ADA. E learning e open source 1 ADA. E learning e open source ADA 1.7.1 Come cresce un Ambiente Digitale per l'apprendimento open source Maurizio Graffio Mazzoneschi 2 Cos'è il software libero Libertà 0, o libertà fondamentale: la

Dettagli

IL PRIVATE CLOUD DELLA FRIENDS' POWER

IL PRIVATE CLOUD DELLA FRIENDS' POWER IL PRIVATE CLOUD DELLA FRIENDS' POWER Evoluzione al Cloud Computing Condivisione dei lavori Integrazione con Android & iphone Cos è il Cloud: le forme e i vantaggi Durante la rivoluzione industriale, le

Dettagli

Framework di seconda generazione per la creazione di app ibride: Ionic

Framework di seconda generazione per la creazione di app ibride: Ionic Università degli Studi Mediterranea di Reggio Calabria Dipartimento di Ingegneria dell Informazione, delle Infrastrutture e dell Energia Sostenibile Corso di Laurea in Ingegneria dell Informazione Tesi

Dettagli

Proposta App Smartphone e Tablet per Ufficio Concorsi Polizia di Stato

Proposta App Smartphone e Tablet per Ufficio Concorsi Polizia di Stato Proposta App Smartphone e Tablet per Ufficio Concorsi Polizia di Stato Indice App to you Introduzione Requisiti Funzionali Casi d uso Architettura SOA Proposte Dispositivi Supportati L App News Concorsi

Dettagli

Misurare il successo Guida alla valutazione dei service desk per le medie imprese:

Misurare il successo Guida alla valutazione dei service desk per le medie imprese: WHITE PAPER SULLE BEST PRACTICE Misurare il successo Guida alla valutazione dei service desk per le medie imprese: Come scegliere la soluzione ottimale per il service desk e migliorare il ROI Sommario

Dettagli

MailStore Server 7 Specifiche tecniche

MailStore Server 7 Specifiche tecniche MailStore Server 7 Specifiche tecniche MailStore Server Lo standard nell archiviazione delle email Le aziende di ogni dimensione possono trarre vantaggi legali, tecnici ed economici dall archiviazione

Dettagli

Su Internet, oggi, se il vostro sito Web non è dotato di funzionalità ricche o contenuti. I sistemi CMS e un introduzione a Joomla! In questo capitolo

Su Internet, oggi, se il vostro sito Web non è dotato di funzionalità ricche o contenuti. I sistemi CMS e un introduzione a Joomla! In questo capitolo 1 I sistemi CMS e un introduzione a Joomla! In questo capitolo Su Internet, oggi, se il vostro sito Web non è dotato di funzionalità ricche o contenuti aggiornati, è svantaggiato. L idea di potenziare

Dettagli

ANDROID. Domenico Talia. Università della Calabria. talia@dimes.unical.it

ANDROID. Domenico Talia. Università della Calabria. talia@dimes.unical.it ANDROID Domenico Talia Università della Calabria talia@dimes.unical.it Sistemi Operativi per Mobile! I sistemi operativi per sistemi mobili seguono i principi dei SO classici ma devono gestire risorse

Dettagli

Hitachi Systems CBT S.p.A.

Hitachi Systems CBT S.p.A. Hitachi Systems CBT S.p.A. EasyCloud : Cloud Business Transformation LA TECNOLOGIA AL SERVIZIO DEL RINNOVAMENTO AZIENDALE Accompagniamo aziende di ogni dimensione e settore nella trasformazione strategica

Dettagli