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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

RELAZIONE E COMUNICAZIONE. Sviluppare la gestione delle relazioni con i clienti grazie a:

RELAZIONE E COMUNICAZIONE. Sviluppare la gestione delle relazioni con i clienti grazie a: RELAZIONE E COMUNICAZIONE Sviluppare la gestione delle relazioni con i clienti grazie a: Microsoft Office System 2007 Windows Vista Microsoft Exchange Server 2007 è ancora più potente ed efficace, grazie

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

Sfrutta appieno le potenzialità del software SAP in modo semplice e rapido

Sfrutta appieno le potenzialità del software SAP in modo semplice e rapido Starter Package è una versione realizzata su misura per le Piccole Imprese, che garantisce una implementazione più rapida ad un prezzo ridotto. E ideale per le aziende che cercano ben più di un semplice

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

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

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

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

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

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

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

Infinity Application Framework Una nuova e diversa interpretazione delle soluzioni applicative aziendali

Infinity Application Framework Una nuova e diversa interpretazione delle soluzioni applicative aziendali Infinity Application Framework Una nuova e diversa interpretazione delle soluzioni applicative aziendali Infinity Application Framework è la base di tutte le applicazioni della famiglia Infinity Project

Dettagli

.EVERYWHERE LOGIN. entra nel futuro. partnership signed

.EVERYWHERE LOGIN. entra nel futuro. partnership signed .EVERYWHERE LOGIN entra nel futuro. partnership signed Sinergia per l innovazione. Studio Ferroli e Acknow Per essere competitivi e vincenti in un mercato sempre più dinamico e globalizzato, che richiede

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

Consulenza, servizi su misura e tecnologia a supporto del business.

Consulenza, servizi su misura e tecnologia a supporto del business. Consulenza, servizi su misura e tecnologia a supporto del business. ACCREDITED PARTNER 2014 Consulenza, servizi su misura e tecnologia a supporto del business. Gariboldi Alberto Group Srl è una realtà

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

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

Il tuo business si evolve. Fai evolvere il tuo gestionale. Costruiamo i motori di un pianeta più intelligente.

Il tuo business si evolve. Fai evolvere il tuo gestionale. Costruiamo i motori di un pianeta più intelligente. Il tuo business si evolve. Fai evolvere il tuo gestionale. Costruiamo i motori di un pianeta più intelligente. esperienza + innovazione affidabilità Da IBM, una soluzione completamente nuova: ACG Vision4,

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

Tecnologie e sistemi per la business integration. www.xdatanet.com

Tecnologie e sistemi per la business integration. www.xdatanet.com Tecnologie e sistemi per la business integration www.xdatanet.com X DataNet, X costruttori DataNet, costruttori di softwaredi software Costruiamo Costruiamo soluzioni tecnologiche soluzioni tecnologiche

Dettagli

Office 2010 e Office 365: il tuo ufficio sempre con te

Office 2010 e Office 365: il tuo ufficio sempre con te Office 2010 e Office 365: il tuo ufficio sempre con te Accedi ai tuoi documenti e messaggi di posta ovunque sei, sia online che offline, sul PC, sul telefono o sul browser. Usi Office, Excel, Word in ufficio

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

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

Retail L organizzazione innovativa del tuo punto vendita

Retail L organizzazione innovativa del tuo punto vendita fare Retail L organizzazione innovativa del tuo punto vendita fareretail è una soluzione di by www.fareretail.it fareretail fareretail è la soluzione definitiva per la Gestione dei Clienti e l Organizzazione

Dettagli

Il cloud per la tua azienda.

Il cloud per la tua azienda. Il cloud per la tua azienda. Questo è Microsoft Cloud Ogni azienda è unica. Dalla sanità alla vendita al dettaglio, alla produzione o alla finanza, non esistono due aziende che operano nello stesso modo.

Dettagli

catalogo corsi di formazione 2015/2016

catalogo corsi di formazione 2015/2016 L offerta formativa inserita in questo catalogo è stata suddivisa in quattro sezioni tematiche che raggruppano i corsi di formazione sulla base degli argomenti trattati. Organizzazione, progettazione e

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

IDENTITÀ GIOVANE. Nata nel 2006 con l intento di diventare leader nel settore IT, Easytech cresce con una solida competenza in tre divisioni:

IDENTITÀ GIOVANE. Nata nel 2006 con l intento di diventare leader nel settore IT, Easytech cresce con una solida competenza in tre divisioni: copertina pg. 1 immagine pg. 2 Easytech è un gruppo di giovani professionisti uniti da un obiettivo comune: proporre le migliori soluzioni per rendere le imprese leggere e pronte a sostenere la competizione

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

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

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

MOTOROLA RHOELEMENTS SVILUPPA UNA APPLICAZIONE CHE FUNZIONI SU DIVERSI DISPOSITIVI E CON DIFFERENTI SISTEMI OPERATIVI.

MOTOROLA RHOELEMENTS SVILUPPA UNA APPLICAZIONE CHE FUNZIONI SU DIVERSI DISPOSITIVI E CON DIFFERENTI SISTEMI OPERATIVI. MOTOROLA RHOELEMENTS SVILUPPA UNA APPLICAZIONE CHE FUNZIONI SU DIVERSI DISPOSITIVI E CON DIFFERENTI SISTEMI OPERATIVI. MOTOROLA RHOELEMENTS BROCHURE COSÌ TANTI DISPOSITIVI MOBILE. VOLETE SVILUPPARE UNA

Dettagli

Scopri il nuovo Office

Scopri il nuovo Office Scopri il nuovo Office Sommario Scopri il nuovo Office... 4 Scegli la versione di Office più adatta a te...9 Confronta le versioni...14 Domande frequenti...16 Applicazioni di Office: Novità...19 3 Scopri

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web

Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web Mattia Gentilini Relatore: Renzo Davoli Laurea Specialistica in Informatica I Sessione A.A. 2005/2006

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

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

New Entity immagina... fatto

New Entity immagina... fatto New Entity immagina... fatto I NOSTRI PRODOTTI E-call E-sms EntityPBX CloudPBX REM Mission Di pari passo con l evoluzione del mercato, abbiamo acquisito sempre maggiore esperienza nel piegare le tecnologie

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

Cloud Computing e Mobility:

Cloud Computing e Mobility: S.A.F. SCUOLA DI ALTA FORMAZIONE LUIGI MARTINO Cloud Computing e Mobility: Lo studio professionale agile e sicuro Davide Grassano Membro della Commissione Informatica 4 dicembre 2013 - Milano Agenda 1

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

InfoTecna ITCube Web

InfoTecna ITCube Web InfoTecna ITCubeWeb ITCubeWeb è un software avanzato per la consultazione tramite interfaccia Web di dati analitici organizzati in forma multidimensionale. L analisi multidimensionale è il sistema più

Dettagli

uadro Business Intelligence Professional Gestione Aziendale Fa quadrato attorno alla tua azienda

uadro Business Intelligence Professional Gestione Aziendale Fa quadrato attorno alla tua azienda Fa quadrato attorno alla tua azienda Professional Perché scegliere Cosa permette di fare la businessintelligence: Conoscere meglio i dati aziendali, Individuare velocemente inefficienze o punti di massima

Dettagli

Your business to the next level

Your business to the next level Your business to the next level 1 2 Your business to the next level Soluzioni B2B per le costruzioni e il Real Estate New way of working 3 01 02 03 04 BIM Cloud Multi-Platform SaaS La rivoluzione digitale

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

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

LA FORZA DELLA SEMPLICITÀ. Business Suite

LA FORZA DELLA SEMPLICITÀ. Business Suite LA FORZA DELLA SEMPLICITÀ Business Suite LA MINACCIA È REALE Le minacce online alla tua azienda sono reali, qualunque cosa tu faccia. Chiunque abbia dati o denaro è un bersaglio. Gli incidenti relativi

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

USO OTTIMALE DI ACTIVE DIRECTORY DI WINDOWS 2000

USO OTTIMALE DI ACTIVE DIRECTORY DI WINDOWS 2000 VERITAS StorageCentral 1 USO OTTIMALE DI ACTIVE DIRECTORY DI WINDOWS 2000 1. Panoramica di StorageCentral...3 2. StorageCentral riduce il costo totale di proprietà per lo storage di Windows...3 3. Panoramica

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

Brochure prodotto Infrastrutture di ricarica per veicoli elettrici Servizi di connessione ABB

Brochure prodotto Infrastrutture di ricarica per veicoli elettrici Servizi di connessione ABB Brochure prodotto Infrastrutture di ricarica per veicoli elettrici Servizi di connessione ABB Servizi di connessione Prodotti a supporto del business Per sfruttare al meglio una rete di ricarica per veicoli

Dettagli

Docebo: la tua piattaforma E-Learning Google Ready.

Docebo: la tua piattaforma E-Learning Google Ready. Docebo: la tua piattaforma E-Learning Google Ready. Potenzia la tua suite Google Apps con Piattaforma FAD e Tutorial gratuiti Docebo! Docebo aiuta le aziende nella transizione da altre suite d ufficio

Dettagli

Componenti Web: client-side e server-side

Componenti Web: client-side e server-side Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente

Dettagli

Configuratore di Prodotto Diapason

Configuratore di Prodotto Diapason Configuratore di Prodotto Diapason Indice Scopo di questo documento...1 Perché il nuovo Configuratore di Prodotto...2 Il configuratore di prodotto...3 Architettura e impostazione tecnica...5 Piano dei

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

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

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

PICCOLA? MEDIA? GRANDE!

PICCOLA? MEDIA? GRANDE! PICCOLA? MEDIA? GRANDE! UNA NUOVA REALTÀ PER LE IMPRESE Il mondo odierno è sempre più guidato dall innovazione, dall importanza delle nuove idee e dallo spirito di iniziativa richiesti dalla moltitudine

Dettagli

CMX Professional. Software per Tarature completamente personalizzabile.

CMX Professional. Software per Tarature completamente personalizzabile. CMX Professional Software per Tarature completamente personalizzabile. CMX Professional Software per tarature con possibilità illimitate. Chi deve tarare? Che cosa? Quando? Con quali risultati? Pianificare,

Dettagli

Cresceresulweb. EMAIL PROFESSIONALE L'affidabilità di Gmail

Cresceresulweb. EMAIL PROFESSIONALE L'affidabilità di Gmail Cresceresulweb EMAIL PROFESSIONALE L'affidabilità di Gmail Le aziende italiane, di qualunque dimensione, fanno ormai un uso quotidiano della posta elettronica per gestire fornitori, parlare con i clienti,

Dettagli

Iniziamo ad utilizzare LiveBox ITALIANO. http://www.liveboxcloud.com

Iniziamo ad utilizzare LiveBox ITALIANO. http://www.liveboxcloud.com 2015 Iniziamo ad utilizzare LiveBox ITALIANO http://www.liveboxcloud.com Iniziamo ad utilizzare LiveBox LiveBox è un software di private cloud che permette di memorizzare, condividere e modificare i documenti

Dettagli

Lexmark Favorisce la Trasformazione dell IT con le Soluzioni CA Agile Operations

Lexmark Favorisce la Trasformazione dell IT con le Soluzioni CA Agile Operations CUSTOMER SUCCESS STORY LUGLIO 2015 Lexmark Favorisce la Trasformazione dell IT con le Soluzioni CA Agile Operations PROFILO DEL CLIENTE Settore: servizi IT Azienda: Lexmark Dipendenti: 12.000 Fatturato:

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Classificazione del software

Classificazione del software Classificazione del software Classificazione dei software Sulla base del loro utilizzo, i programmi si distinguono in: SOFTWARE Sistema operativo Software applicativo Sistema operativo: una definizione

Dettagli

w w w. n e w s o f t s r l. i t Soluzione Proposta

w w w. n e w s o f t s r l. i t Soluzione Proposta w w w. n e w s o f t s r l. i t Soluzione Proposta Sommario 1. PREMESSA...3 2. NSPAY...4 2.1 FUNZIONI NSPAY... 5 2.1.1 Gestione degli addebiti... 5 2.1.2 Inibizione di un uso fraudolento... 5 2.1.3 Gestione

Dettagli

Software per l archiviazione e la gestione conforme delle email

Software per l archiviazione e la gestione conforme delle email MailStore Server 7 Software per l archiviazione e la gestione conforme delle email MailStore Server Lo standard nell archiviazione delle email MailStore Server consente alle aziende di trarre tutti i vantaggi

Dettagli

Distribuire iphone e ipad Apple Configurator

Distribuire iphone e ipad Apple Configurator Distribuire iphone e ipad Apple Configurator I dispositivi ios si possono configurare con diversi strumenti e metodi per essere distribuiti in ambito aziendale. Gli utenti finali possono impostare i dispositivi

Dettagli

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3 Introduzione...xv A chi si rivolge questo libro...xv Gli argomenti trattati...xv Com è organizzato il libro...xvi Cosa occorre per utilizzare il libro...xvii Convenzioni adottate...xvii Il codice sorgente...xviii

Dettagli

EFFICIENZA E RIDUZIONE DEI COSTTI

EFFICIENZA E RIDUZIONE DEI COSTTI SCHEDA PRODOTTO TiOne Technology srl Via F. Rosselli, 27 Tel. 081-0108029 Startup innovativa Qualiano (NA), 80019 Fax 081-0107180 www.t1srl.it www.docincloud.it email: info@docincloud.it DocinCloud è la

Dettagli

Iniziamo ad utilizzare LiveBox ITALIANO. http://www.liveboxcloud.com

Iniziamo ad utilizzare LiveBox ITALIANO. http://www.liveboxcloud.com 2014 Iniziamo ad utilizzare LiveBox ITALIANO http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia

Dettagli

Piattaforma ilearn di Hiteco. Presentazione Piattaforma ilearn

Piattaforma ilearn di Hiteco. Presentazione Piattaforma ilearn Presentazione Piattaforma ilearn 1 Sommario 1. Introduzione alla Piattaforma Hiteco ilearn...3 1.1. Che cos è...3 1.2. A chi è rivolta...4 1.3. Vantaggi nell utilizzo...4 2. Caratteristiche della Piattaforma

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

2. Strutture dei Sistemi Operativi

2. Strutture dei Sistemi Operativi 1 2. Strutture dei Sistemi Operativi Quali servizi un generico sistema operativo mette a disposizione degli utenti, e dei programmi che gli utenti vogliono eseguire? interfaccia col sistema operativo stesso

Dettagli

Strumento evoluto di Comunicazione con i Venditori

Strumento evoluto di Comunicazione con i Venditori Strumento evoluto di Comunicazione con i Venditori GAS 2 net è una soluzione web-based compliant con le definizioni di strumento evoluto come richiesto dalla normativa vigente (Del. AEEG n 157/07, Del.

Dettagli

PoTENTI PRESTRAZIONI DUal-core

PoTENTI PRESTRAZIONI DUal-core PoTENTI PRESTRAZIONI DUal-core POTENTI PRESTAZIONI DUAL-CORE PER IL BUSINESS DI TUTTI I GIORNI I più recenti notebook business Toshiba che integrano il processore Intel Core 2 Duo, sono estremamente potenti,

Dettagli

Posta elettronica sicura, Calendario, Contatti, Attività, condivisione di file e Note tra i dispositivi

Posta elettronica sicura, Calendario, Contatti, Attività, condivisione di file e Note tra i dispositivi - Posta elettronica sicura, Calendario, Contatti, Attività, condivisione di file e Note tra i dispositivi Parla Spamina Parla è una piattaforma di sicurezza email, cloud-based, con un massimo di 30 GB

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

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

Installazione di IBM SPSS Modeler 14.2 Client (licenza di rete)

Installazione di IBM SPSS Modeler 14.2 Client (licenza di rete) Installazione di IBM SPSS Modeler 14.2 Client (licenza di rete) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Client versione 14.2 con licenza di rete. Questo documento è stato

Dettagli

I servizi cloud per la didattica

I servizi cloud per la didattica I servizi cloud per la didattica Un servizio offerto da DidaCloud srls Fare startup significa fare cose nuove che cambiano la vita propria e altrui Riccardo Luna, primo direttore dell edizione italiana

Dettagli

Notifica sul Copyright

Notifica sul Copyright Parallels Panel Notifica sul Copyright ISBN: N/A Parallels 660 SW 39 th Street Suite 205 Renton, Washington 98057 USA Telefono: +1 (425) 282 6400 Fax: +1 (425) 282 6444 Copyright 1999-2009, Parallels,

Dettagli

Il consulente aziendale di Richard Newton, FrancoAngeli 2012

Il consulente aziendale di Richard Newton, FrancoAngeli 2012 Introduzione Chiedete a qualunque professionista di darvi una definizione dell espressione consulente aziendale, e vedrete che otterrete molte risposte diverse, non tutte lusinghiere! Con tale espressione,

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

Content Management Systems

Content Management Systems Content Management Systems L o Guido Porruvecchio Tecnologia e Applicazioni della Rete Internet Definizione Un Content Management System (CMS) è letteralmente un sistema per la gestione dei contenuti Definisce

Dettagli

Analisi dei Requisiti

Analisi dei Requisiti Analisi dei Requisiti Pagina 1 di 16 Analisi dei Requisiti Indice 1 - INTRODUZIONE... 4 1.1 - OBIETTIVO DEL DOCUMENTO...4 1.2 - STRUTTURA DEL DOCUMENTO...4 1.3 - RIFERIMENTI...4 1.4 - STORIA DEL DOCUMENTO...4

Dettagli

Virtualization. Strutturare per semplificare la gestione. ICT Information & Communication Technology

Virtualization. Strutturare per semplificare la gestione. ICT Information & Communication Technology Virtualization Strutturare per semplificare la gestione Communication Technology Ottimizzare e consolidare Le organizzazioni tipicamente si sviluppano in maniera non strutturata e ciò può comportare la

Dettagli

Google Apps for Education

Google Apps for Education Google Apps for Education dalla condivisione in Drive a Classroom Istituto Comprensivo di Bellano GAFE Insieme di servizi e applicazioni on -line 2 Cloud Computing Che cos è? Cloud Computing Un insieme

Dettagli

Addition X DataNet S.r.l. www.xdatanet.com www.xdatanet.com

Addition X DataNet S.r.l. www.xdatanet.com www.xdatanet.com Addition è un applicativo Web che sfrutta le potenzialità offerte da IBM Lotus Domino per gestire documenti e processi aziendali in modo collaborativo, integrato e sicuro. www.xdatanet.com Personalizzazione,

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

Open Core Engineering Libertà ed efficienza nelle vostre mani

Open Core Engineering Libertà ed efficienza nelle vostre mani Open Core Engineering Libertà ed efficienza nelle vostre mani Nuove opportunità per affrontare le attuali sfide nella progettazione di software Cicli di vita dei prodotti sempre più brevi stanno alimentando

Dettagli

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito LEZIONE 3 Il pannello di amministrazione di Drupal, configurazione del sito Figura 12 pannello di controllo di Drupal il back-end Come già descritto nella lezione precedente il pannello di amministrazione

Dettagli

NUMERO 1O l esperienza migliora il business

NUMERO 1O l esperienza migliora il business NUMERO 1O l esperienza migliora il business Dal 1986 al vostro fianco NUMERO 1O, a più di vent anni dalla sua nascita, rappresenta il polo di riferimento nell esperienza informatica legata al business.

Dettagli

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web tesi di laurea Anno Accademico 2011/2012 relatore Ch.mo prof. Marcello Cinque correlatore Ing. Fabio De Paolis candidato Michele Basile Matr. 534/3239 Web Development Frameworks Nella realizzazione di

Dettagli

Lexmark Favorisce la Trasformazione dell IT con le Soluzioni CA Service Assurance

Lexmark Favorisce la Trasformazione dell IT con le Soluzioni CA Service Assurance CUSTOMER SUCCESS STORY Febbraio 2014 Lexmark Favorisce la Trasformazione dell IT con le Soluzioni CA Service Assurance PROFILO DEL CLIENTE Settore: servizi IT Società: Lexmark Dipendenti: 12.000 Fatturato:

Dettagli

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete Sistemi Operativi di Rete Estensione dei Sistemi Operativi standard con servizi per la gestione di risorse in rete locale Risorse gestite: uno o più server di rete più stampanti di rete una o più reti

Dettagli