UNIVERSITÀ DEGLI STUDI DEL SANNIO

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DEGLI STUDI DEL SANNIO"

Transcript

1 UNIVERSITÀ DEGLI STUDI DEL SANNIO FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESI DI LAUREA IN TECNOLOGIE DI PRODUZIONE DEL SOFTWARE STUDIO DI UN FRAMEWORK APPLICATIVO MULTIPIATTAFORMA PER AMBIENTI MOBILE RELATORE: Prof. Luigi Troiano CORRELATORE: Dott. Maria Carmela Vitelli CANDIDATO: Umberto Russo Matr. 195/ ANNO ACCADEMICO 2012/2013

2 A i miei genitori...

3

4 Sommario Indice delle Figure... 6 Indice delle Tabelle... 7 CAPITOLO 1 INTRODUZIONE Organizzazione del lavoro CAPITOLO 2 LE APPLICAZIONI IN AMBITO MOBILE Panoramica sui sistemi operativi mobile Sviluppo di un'app in ambienti nativi Ambienti: Android, ios e Windows Phone Realizzazione di un'app attraverso un framework multipiattaforma CAPITOLO 3 PHONEGAP Scegliere un buon framework Caretteristiche di PhoneGap Architettura di PhoneGap e il suo modello di programmazione Linguaggi di programmazione utilizzati e la loro relazione con PhoneGap jquery Mobile: un framework nel framework

5 CAPITOLO 4 PORTING DI UN'APPLICAZIONE Interfaccia grafica e navigazione tra le pagine Persistenza dei dati Accesso alle API native con PhoneGap Interazione con un web server CAPITOLO 5 CONCLUSIONI E SVILUPPI FUTURI Appendice BIBLIOGRAFIA

6 Indice delle Figure Figura 1: Build Emulation Flow Android Figura 2: Layers of ios Figura 3: Condivisione API Window 8 e Windows Phone Figura 4: Architettura Windows Phone Figura 5: Unificazione delle piattaforme Windows Figura 6: PhoneGap Build Diagram Figura 7: Architettura PhoneGap

7 Indice delle Tabelle Tabella 1: Funzioni supportate da PhoneGap per i diversi OS Mobile parte Tabella 2: Funzioni supportate da PhoneGap per i diversi OS Mobile parte Tabella 3: Tabella delle affinità Sqlite

8 CAPITOLO 1 INTRODUZIONE Sono passati solo pochi anni dall'introduzione sul mercato di dispositivi mobili quali smartphone e tablet, ed è incredibile come questi hanno rivoluzionato il modo di vivere delle persone, oggi è quasi indispensabile potersi connettere ad internet tramite il proprio smartphone per poter usufruire della miriade di servizi atti a fornire un insieme sempre più organizzato di informazioni. Parallelamente allo sviluppo hardware, come sempre accade, il mondo del software ha dovuto reinventarsi per approcciare ad un mercato in crescita esponenziale, giganti dell' IT come Google e Apple hanno rivoluzionato il concetto di "cellulare" a tal punto da da domandarsi quale potrà mai essere lo step successivo. Attualmente esistono milioni di applicazioni mobile, la maggior parte per ambienti Android e ios, ma si contano almeno una decina di sistemi operativi mobile con caratteristiche diverse. Questo si traduce, per lo sviluppo di applicazioni, nell'utilizzo di innumerevoli strumenti di sviluppo diversi fra loro e un dispendio notevole di risorse atti a garantire il funzionamento delle medesima applicazione sulla maggior parte di questi sistemi operativi. 8

9 Esistono però delle alternative: infatti, tramite l'utilizzo di opportuni framework applicativi si può risparmiare tempo, risorse e garantire la compatibilità dell'applicazione su diversi sistemi mobile. Lo scopo della seguente tesi è quello di valutare le attuali tecniche di sviluppo di applicativi mobile e confrontarle con l'uso alternativo di framework cross-platform, per comprendere se allo stato attuale è possibile realizzare applicazioni di qualità con un approccio multipiattaforma in grado di competere con lo sviluppo in ambienti nativi. Il vantaggio principale che spinge alla realizzazione di framework per ambienti mobile è certamente l'approccio cross-platform, il quale garantisce un notevole risparmio di risorse sia nella fase di progettazione che di sviluppo. Questo tipo di approccio è stato già brillantemente adoperato in passato, per esempio dalla Sun Microsystem, la quale ha prodotto il linguaggio di programmazione orientato agli oggetti Java, attualmente uno dei più utilizzati al mondo. 9

10 1.1 Organizzazione del lavoro Il presente lavoro propone lo studio e lo sviluppo di un applicativo multipiattaforma mobile, mediante il porting di un' applicazione già esistente in ambiente Android. Utilizzando il framework PhoneGap sarà possibile evidenziare le tecniche necessarie per il conseguimento dello scopo e valutare le eventuali alternative. Nel Capitolo 2 viene proposta una panoramica sull'ambiente mobile, vengono presi in considerazione gli attuali sistemi operativi più importanti e ne vengono delineate le differenze in termini di progettazione e sviluppo di software. Vengono presentati, inoltre, gli aspetti peculiari dello sviluppo in ambienti nativi e attraverso i diversi framework multipiattaforma oggi disponibili. Nel Capitolo 3 verrà presentato PhoneGap un framework cross-platform mobile realizzato dalla software house statunitense Adobe System, che consente di sviluppare delle applicazioni native attraverso l'utilizzo di tecnologie web quali HTML5, CSS3 e JavaScript. 10

11 Nel Capitolo 4 viene concretizzata l'attività di analisi con la descrizione del lavoro svolto per realizzare il porting di un applicativo già esistente, progettato per l'ambiente Android, attraverso l'uso di PhoneGap. Infine nel Capitolo 5 confrontando l'applicazione nativa con quella ottenuta attraverso il porting, sarà possibile comprendere i diversi comportamenti dovuti a modelli di programmazione differenti. Evidenziando, per concludere, vantaggi e svantaggi offerti dall'utilizzo di un framework multipiattaforma rispetto alle tradizionali tecniche si sviluppo in ambienti mobile. 11

12 CAPITOLO 2 LE APPLICAZIONI IN AMBITO MOBILE Un'applicazione per dispositivi mobili si differenzia da quelle tradizionali sia per il supporto con cui viene usata sia per la concezione che racchiude in sé. Generalmente questo tipo di applicazioni vengono definite anche "App", poiché rispetto ad un'applicazione classica risultano più semplici e leggere ed hanno il compito di ampliare le capacità native del dispositivo su cui vengono installate. Negli ultimi anni però il mondo delle app è diventato sempre più complesso e la semplicità che caratterizzava le applicazioni mobile sta lasciando il posto a software più articolati, complice anche la repentina evoluzione hardware dei dispositivi quali smartphone e tablet. 2.1 Panoramica sui sistemi operativi mobile Un sistema operativo mobile, detto anche "mobile OS", controlla un dispositivo mobile con lo stesso principio con cui i sistemi operativi desktop controllano un PC o un Laptop. 12

13 La maggior parte delle problematiche affrontate da un sistema operativo mobile sono le stesse della controparte desktop: ossia la gestione della memoria RAM, l'utilizzo della CPU da parte dei processi attivi, la gestione di un file system ecc. In più, hanno il difficile compito di gestire fattori non presenti in ambienti desktop, come ad esempio: la gestione limitata delle risorse, l'assenza di alimentazione esterna, differenti tecnologie per l'accesso ad internet (WiFi, GPRS, HSDPA), nuovi metodi di immissione testuale ecc. Inoltre non bisogna dimenticare che uno smartphone è principalmente un telefono, un mezzo di comunicazione e quindi un OS mobile deve poter gestire anche questa fondamentale funzionalità. Una delle prime aziende informatiche a lavorare su sistemi operativi mobile più evoluti è stata la Microsoft Corporation, la quale nel 2005 lancia Windows Mobile 5. Successivamente nel 2007 Apple rivoluziona il mondo degli smartphone proponendo il suo sistema operativo mobile ios (anche se inizialmente era chiamato iphone OS), mentre l'anno successivo nel 2008 Google lancia la prima versione di Android. Di seguito una lista dei principali sistemi operativi mobile, che attualmente sono presenti sul mercato ed equipaggiano smartphone ed alcuni tablet. 13

14 ios: sviluppato da Apple a partire dal 2007, caratterizzato da un kernel 1 ibrido XNU basato su kernel Mach e FreeBSD, il modello del sorgente è proprietario anche se il nucleo Darwin è open source, è disponibile un SDK per lo sviluppo di app attraverso Xcode, attualmente è uno dei principali OS mobile. Android: sviluppato da Google a partire dal 2008 caratterizzato da un kernel linux monolitico, il modello del sorgente è completamente open source infatti è possibile trovare diverse varianti del sistema operativo sviluppate da appassionati, è disponibile un SDK per lo sviluppo di app attraverso Eclipse che comunque non rappresenta l'unico metodo per sviluppare in ambiente Android. Insieme ad ios attualmente è uno dei principali OS mobile. Windows Phone: sviluppato da Microsoft Corporation a partire dal 2010 caratterizzato da un kernel Windows NT / Windows CE, il modello del sorgente è completamente proprietario, è disponibile un SDK per lo sviluppo di app attraverso Microsoft Visual Studio 2010 Express, anche se non è diffuso come Android e ios rappresenta comunque un sistema operativo mobile presente in un ampia fetta di mercato. 1 Il kernel costituisce il nucleo di un sistema operativo, fornisce ai processi in esecuzione un accesso sicuro e controllato all'hardware. 14

15 BlackBerry: sviluppato da Research In Motion a partire dal 2002 caratterizzato da un kernel sviluppato in C++ con la presenza di un livello di astrazione che permette l'utilizzo di librerie scritte in java, il modello del sorgente è completamente proprietario ed è disponibile un SDK nativo per lo sviluppo di app in C/C++, anche se è possibile utilizzare altre tipi di linguaggi di programmazione. Open WebOS: sviluppato da Palm dal 2009 e successivamente acquistato da Hewlett-Packard, è caratterizzato da un kernel Linux monolitico, il modello del sorgente è proprietario con alcune parti open source, è disponibile un SDK per lo sviluppo di app attraverso vari linguaggi di programmazione tra cui C/C++. Symbian OS: sviluppato da Symbian Foundation a partire dal 2001, caratterizzato da un kernel del tipo Microkernel, ha un modello di sorgente libero, fino ad oggi ha equipaggiato quasi esclusivamente dispositivi nokia ed ormai il suo stato di sviluppo è concluso, è disponibile un SDK per lo sviluppo di app in un dialetto del C++ chiamato Symbian C++. Bada: sviluppato da Samsung dal 2010, caratterizzato da un kernel ibrido RTOS / Free BSD Kernel / Linux kernel, ha un modello di sorgente misto alcune parti sono open source, altre proprietarie o libere, è disponibile un 15

16 SDK per lo sviluppo di app in C++ mediante l'ambiente di sviluppo Eclipse. Nei prossimi paragrafi e capitoli per lo scopo che si prefigge il presente lavoro di tesi, verranno presi in considerazione i sistemi operativi più diffusi nell'attuale mercato mobile ossia Android [1], ios [2] e Windows Phone [3]. 2.2 Sviluppo di un'app in ambienti nativi Sviluppare un applicativo mobile in ambienti nativi vuol dire utilizzare una serie di strumenti messi a disposizione dell'azienda produttrice del sistema operativo, tra cui l'importantissimo SDK 2 e la documentazione ad esso associata. Non tutti gli SDK sono uguali in termini di componenti, i quali formano l'ambiente di sviluppo. Infatti gli strumenti solitamente messi a disposizione per gli sviluppatori sono: un compilatore, che dà la possibilità di tradurre il codice sorgente in un eseguibile, una serie di librerie standard dotate di interfacce pubbliche, tecnicamente definite API 3 e la 2 Software Development Kit, insieme di tools messi a disposizione dal produttore di un sistema operativo per realizzare un software in un determinato ambiente. 3 Acronimo di Application Programming Interface, insieme di procedure disponibili al programmatore raggruppate a formare un insieme di strumenti specifici per eseguire un determinato compito. 16

17 documentazione sulle licenze da utilizzare per distribuire programmi creati con l'sdk. Questi componenti di base possono essere estesi con strumenti di vario tipo come: compilatori per diversi linguaggi di programmazione, IDE 4 molto avanzati e simulatori che permettono di simulare i dispositivi mobili. Molti SDK sono disponibili gratuitamente mentre altri vengono distribuiti attraverso l'uso di licenze commerciali, questo panorama così ampio permette di comprendere come la giusta scelta di sviluppo in ambienti specifici sia di peculiare importanza, poiché l'utilizzo di più kit di sviluppo richiede un cospicuo utilizzo di risorse. A complicare maggiormente lo sviluppo in ambienti nativi è l'utilizzo dei più disparati linguaggi di programmazione; si passa dai più diffusi C/C++ a dialetti degli stessi, da linguaggi orientati al web come JavaScript a tecnologie più datate come J2ME. Nel caso di studio riguardante questo lavoro gli ambienti di sviluppo analizzati riguardano i sistemi operativi Android, ios e Windows Phone, di cui segue una trattazione. 4 Integrated Development Environment, ambiente di sviluppo integrato che aiuta i programmatori nello sviluppo del codice sorgente di un programma. 17

18 2.3 Ambienti: Android, ios e Windows Phone Android Le applicazioni in ambiente Android sono sviluppate all'interno di un framework 5, ossia una struttura dati specifica. Solitamente viene utilizzato come ambiente di sviluppo integrato Eclipse, il quale attraverso l'uso di plug-in può estendere le sue funzionalità e integrare completamente tutte le caratteristiche del SDK Android. Le applicazioni Android sono caratterizzate da una certa dualità: da un lato, si trovano le parti dinamiche (sviluppate in un dialetto del linguaggio Java) che costituiscono l'applicazione mobile, come la gestione degli eventi. Dall'altro si trovano le parti statiche, ad esempio alcuni elementi delle interfacce, queste vengono scritte in XML 6. Questa suddivisione tra parti dinamiche e statiche rappresenta in realtà un'astrazione, utile comunque per comprendere il modello di programmazione generale su cui si basa lo sviluppo per il sistema operativo Android. In effetti le applicazioni realizzate per questo SO vengono interpretate dalla Dalvik Virtual Machine in modo molto simile a ciò che avviene in ambienti Java con la Java Virtual Machine. 5 Un framework è una struttura logica di supporto su cui un software può essere progettato è realizzato. 6 extensible Markup Language, linguaggio di markup basato su un meccanismo sintattico che consente di definire e controllare il significato degli elementi contenuti in un documento o in un testo. 18

19 Quando si compila un sorgente scritto in dialetto Java per Android il compilatore produce un codice che potremmo definire "intermedio" chiamato Bytecode; quest'ultimo viene interpretato dalla Dalvik Virtual Machine e solo a questo punto si ha la reale esecuzione dell'applicazione. Questo approccio, ovviamente ripreso da ciò che avviene già in ambienti Java, è molto interessante poiché permette di eseguire un'applicazione su ogni dispositivo Android anche con architetture hardware diverse. Per ogni dispositivo esiste una versione specifica della Dalvik Virtual Machine in grado di interpretare nel medesimo modo la stessa applicazione, che ovviamente viene scritta e compilata in bytecode solo una volta. In questo modo la filosofia "write once run everywhere" coniata dalla Sun Microsystem viene, in modo più limitato, adottata anche dall'ambiente Android estendendo la portabilità del codice su architetture hardware diverse fra loro. Come risultato di questa idea, molti costruttori hanno deciso di adottare come sistema operativo mobile Android, potendo cosi fornire ai propri utenti un ambiente condiviso da moltissimi altri utenti. Un altro elemento che compone un'applicazione Android è il file "Manifest.xml", un documento scritto in XML che descrive l'applicazione al dispositivo prescelto definendo i contenuti e il comportamento dell'applicazione stessa. All'interno di questo file sono elencate le Activity e i Service con i permessi che l'applicazione necessita per funzionare correttamente. Infine uno strumento di fondamentale importanza completa 19

20 il kit di sviluppo Android: l'emulatore. Esso permette di emulare diversi dispositivi e versioni di Android dando così la possibilità allo sviluppatore di eseguire accurate sessioni di debug. Figura 1: Build Emulation Flow Android ios Il sistema operativo ios di Apple usa una variante del kernel "XNU Kernel" utilizzato nell' OS per ambienti desktop "Mac OS X", ed è per questo motivo che il pacchetto SDK messo a disposizione dalla Apple per lo sviluppo di applicazioni mobile è molto simile, in termini di risorse disponibili, alla controparte desktop. L'IDE utilizzato in questo tipo di ambiente è Xcode, va però specificato che il pacchetto SDK Apple per lo 20

21 sviluppo di software è compatibile solo ed esclusivamente con ambienti desktop Apple. Questo di per sè rappresenta già una limitazione in quanto si rende necessario l'acquisto di una macchina desktop Apple, inoltre la licenza di ios non ne permette l'installazione su hardware di terze parti. Tornando alla descrizione del pacchetto SDK esso comprende: Cocoa Touch: un framework per la creazione di interfacce grafiche utilizzabile per i dispositivi iphone, ipad e ipod. Media: un set di strumenti dedicati alla creazione di contenuti multimediali come audio e grafica, in particolare sono presenti librerie come OpenAL e OpenGL ES. Core Services: per la gestione di funzionalità più specifiche come la geolocalizzazione (Core Location), i servizi di rete, la gestione dei Threads, ecc. Core OS: per la gestione di funzionalità caratteristiche del Sistema Operativo come TCP/IP, Sockets, Power Management, File System, ecc. Queste componenti vengono viste come un insieme di livelli attraverso i quali ios implementa le proprie funzionalità, il livello più basso è rappresentato dal Core OS mentre il livello più alto è il Cocoa Touch. 21

22 Figura 2: Layers of ios Oltre alla Xcode toolchain appena presentata, il pacchetto SDK contiene un efficiente simulatore di iphone utilizzato per testare le app prima dell'effettivo deploy su un reale dispositivo. Il linguaggio di programmazione necessario per realizzare applicazioni in ambiente ios è l'objective-c, che è un linguaggio orientato agli oggetti e di fatto rappresenta un'estensione del linguaggio C. Essendo un'estensione, l'objective-c, mantiene una compatibilità totale con i costrutti utilizzati nel linguaggio C. Anche le applicazioni ios, come quelle Android, vengono sviluppate mediante l'utilizzo di un framework tramite il quale è possibile accedere alle interfacce di sistema. In questo caso il framework è visto come una 22

23 directory che contiene una serie di librerie dinamiche condivise e risorse a supporto di tali librerie. Il compilatore utilizzato per lo sviluppo di app in ambiente ios si chiama Apple LLVM Compiler. Quest'ultimo a differenza di Android, dove il codice prodotto dal compilatore viene successivamente interpretato dalla DVM, compila il codice Objective-C producendo direttamente un programma eseguibile. Bisogna precisare infine che il pacchetto SDK di ios contiene un simulatore di iphone, che nonostante sia molto performante in termini di velocità, non simula tutte le caratteristiche di un dispositivo reale: per esempio la memoria disponibile sull'emulatore non è limitata come quella presente su di un dispositivo reale. Windows Phone Windows Phone 8 è l'ultima versione del sistema operativo Microsoft destinato agli smartphone. Questo, rilasciato alla fine del 2012, rappresenta un ulteriore passo avanti nei progetti di Microsoft stessa. Bisogna infatti pensare che Microsoft produce anche il famoso sistema operativo desktop Windows 8 e commercialmente sta tentando di unificare (dal punto di vista utente) le diverse versioni dei suoi sistemi operativi. Il pacchetto SDK per lo sviluppo di applicazioni mobile contiene: 23

24 Microsoft Visual Studio Express 2012 for Windows Phone: un IDE molto avanzato per le fasi di progettazione e sviluppo. Windows Phone Emulator: un emulatore di dispositivi Windows Phone versione 8 e 7. Microsoft Expression Blend for Windows Phone: un tool di design per la realizzazione di interfacce grafiche. XNA Game Studio: uno strumento basato sul framework gratuito XNA per lo sviluppo di videogiochi su più piattaforme come: PC, Xbox 360 e ovviamente Windows Phone. Windows Phone 8 è basato sul kernel Windows NT lo stesso utilizzato appunto in Windows 8, questa sorta di unificazione permette lo sviluppo di applicazioni sia mobile che desktop attraverso l'uso dei linguaggi C++ e C#. Figura 3: Condivisione API Windows 8 e Windows Phone 8 24

25 Le applicazioni Windows Phone 8 condividono alcuni aspetti con il sistema operativo versione desktop, alcune API e driver models sono condivisi semplificando la fase di sviluppo se si intende operare negli ambienti desktop e mobile contemporaneamente. L'utilizzo del nuovo Kernel NT ridefinisce i diversi livelli dell'architettura che rispetto alla versione precedente, Windows Phone 7, puntano sempre di più a costruire una sorta di unificazione nello sviluppo di applicativi desktop e mobile. 25

26 Figura 4: Architettura Windows Phone 8 Figura 5: Unificazione delle piattaforme Windows 8 26

27 2.4 Realizzazione di un'app attraverso un framework multipiattaforma Sviluppare un'applicazione mediante un framework cross-platform implica un approccio differente rispetto alle tecniche tradizionali. La progettazione dell'applicazione deve tener conto delle diverse caratteristiche dei sistemi operativi e dell'hardware dei dispositivi. Infatti nel caso di sviluppo in ambienti nativi, si tende a progettare il software considerando le funzionalità messe a disposizione da un singola piattaforma. Con l'approccio cross-platform è necessario valutare insieme le caratteristiche delle diverse piattaforme su cui verrà rilasciato il software. Se vengono sfruttate le funzionalità comuni tra più sistemi operativi sarà possibile mantenere un unica linea di sviluppo. Ad esempio se consideriamo i dispositivi Android e ios si può facilmente notare che sulla prima piattaforma citata i dispositivi dispongono di diversi pulsanti soft touch (menu, back button, search, ecc. ) mentre nella seconda piattaforma questi pulsanti sono assenti. Pertanto con un approccio cross-platform, il cui obiettivo è il deployment 7 sui sistemi sopra citati, non è consigliabile utilizzare nell'applicazione il pulsante soft touch menu (relativo alla piattaforma Android), poiché non esiste una funzione equivalente in ios. 7 Il deployment è una fase del ciclo di vita del software che conclude lo sviluppo e da inizio alla manutenzione. 27

28 Questo comporterebbe la nascita di due linee di sviluppo parallele, andando contro l'idea che sta alla base dell'approccio multipiattaforma. Un altro aspetto da affrontare riguarda la scelta del framework crossplatform, di cui oggi ne esistono almeno una ventina che si differenziano per svariati aspetti. Un'attenta trattazione delle caratteristiche necessarie per un buon framework verrà affrontata nel prossimo capitolo. Di seguito un elenco dei framework più conosciuti: PhoneGap Appspresso AppFurnace Application Craft NS Basic/App Studio WorkLight QuickConnectFamily Rhodes 28

29 CAPITOLO 3 PHONEGAP PhoneGap è un Framework cross-platform mobile prodotto inizialmente da Nitobi e successivamente acquistato da Adobe System. Esso consente di sviluppare delle applicazioni per dispositivi mobili attraverso l'uso delle tecnologie orientate al web come: HTML5, CSS3 e JavaScript; al posto di linguaggi specifici per ogni device come l'objective-c. Il risultato che si ottiene è un'applicazione ibrida, poiché il rendering del layout avviene attraverso l'utilizzo delle WebView presenti in modo nativo all'interno delle User Interface dei diversi Sistemi Operativi Mobile. Le caratteristiche ibride riguardano anche il lato back-end 8 dell'applicazione; poiché quest'ultima non è soltanto una web app, essa ha accesso alle API native del dispositivo. Questa caratteristica non è presente nelle applicazioni esclusivamente web based. 3.1 Scegliere un buon framework La scelta di un buon framework multipiattaforma per lo sviluppo di applicazioni mobile è di fondamentale importanza. Nelle fasi che 8 Il back-end rappresenta la parte software che elabora i dati generati dal front-end, che a sua volta è la parte software che gestisce l'interazione con l'utente. 29

30 caratterizzano la realizzazione di un software, in generale analisi, progettazione, implementazione e collaudo, risulta conveniente utilizzare strumenti che agevolano le varie fasi. Tutto questo si traduce in un notevole risparmio di risorse e tempo, inoltre un framework di qualità si riconosce anche dalla notorietà della software house che lo produce. Nel caso di PhoneGap parliamo di Adobe System, un'azienda presente sul mercato da diversi anni è che ha sempre realizzato prodotti di successo. Bisogna poi ricordare che un framework multipiattaforma permette l'accesso alle API native dell'ambiente mobile specifico, e non tutti i framework esistenti supportano tutte le funzionalità messe a disposizione delle diverse API. Un'altra caratteristica da notare riguarda le tempistiche di rilascio delle nuove versioni di un determinato framework. Rilasci relativamente frequenti danno l'opportunità di comprendere che il framework in questione è seguito ed utilizzato da molti e per tanto raggiunge fasi di sviluppo avanzate che permettono l'implementazione di funzionalità sempre più complete. La possibilità di espandere le caratteristiche di un framework è un altro punto a favore, poiché i progetti software più importanti sono sempre accompagnati da folte community di appassionati. Queste ultime 30

31 sviluppano plug-in di terze parti e creano un'ampia documentazione a corredo di tali estensioni. Infine bisogna sempre pensare quale sarà l'obiettivo da raggiungere con lo sviluppo di un'applicazione mobile. Esistono progetti open source e commerciali che richiedono attenzioni differenti per la successiva fase di distribuzione. Per quanto riguarda i progetti commerciali, il cui obiettivo è la monetizzazione, l'uso di licenze adatte allo scopo è fondamentale. Se non si desidera investire in strumenti per lo sviluppo che adottano a loro volta licenze commerciali, è necessario far riferimento a strumenti comunque professionali che si basano su licenze di tipo: MIT, open source, ecc. La scelta dell'utilizzo di PhoneGap, per il porting di un'applicazione già esistente in ambiente Android, è stata dettata da tutte le caratteristiche sopra elencate, il confronto del framework PhoneGap con altri concorrenti ha portato alla scelta di quest'ultimo in quanto ben rispondeva alle necessità relative al lavoro di porting 9. 9 processo di trasposizione di un componente software, volto a consentirne l'uso in un ambiente di esecuzione diverso da quello originale. 31

32 3.2 Caratteristiche di PhoneGap Il core delle applicazioni PhoneGap utilizza HTML5 e CSS3 per il rendering dell'interfaccia grafica, mentre JavaScript viene utilizzato per implementare la logica dell'applicazione e contemporaneamente per accedere alle funzionalità native messe a disposizione dalle API. HTML5 ha la possibilità, grazie alle sue nuove caratteristiche, di accedere alle funzionalità native del dispositivo, anche se questo approccio non è raccomandabile poiché esso non è ancora uno standard perfettamente definito. Molti dispositivi mobile più datati supportano solo poche caratteristiche del linguaggio di markup HTML5, il World Wide Web Consortium [4] ha annunciato che la prima versione dello standard è prevista per la fine del Per incorporare l'applicazione realizzata mediante tecnologie web all'interno di una WebView e accedere alle API native, PhoneGap fa ampiamente uso di Foreign Function Iterface. Ossia un meccanismo attraverso il quale un programma scritto in un determinato linguaggio, può chiamare routines o far uso di servizi scritti in un altro linguaggio di programmazione. PhoneGap utilizza una libreria JavaScript comune a tutti Figura 5: Flow Diagram dell architettura 32

33 gli ambienti mobile, la quale è collegata attraverso le FFI, ai servizi messi a disposizione delle librerie scritte in linguaggio nativo per ogni piattaforma mobile. In questo modo il codice scritto mediante PhoneGap rimane lo stesso per ogni sistema operativo mobile. Infine per ottenere il codice eseguibile è necessario nei diversi ambienti di sviluppo collegare esclusivamente le librerie native ed eseguire il build 10 dell'applicazione. Questo approccio però, rende le prestazioni dell'applicazione meno performanti rispetto ad un'applicazione sviluppata in ambiente nativo. In realtà quest'ultimo punto è una caratteristica di tutti i framework mobile multipiattaforma, un comportamento tra l'altro prevedibile se si pensa che l'applicazione per poter essere eseguita, deve necessariamente passare per una serie di wrapper. I sistemi operativi supportati da PhoneGap sono: Android, Windows Phone, ios, Bada, Blackberry, webos e Symbian. Di seguito alcune tabelle comparative che specificano le funzionalità native supportate da PhoneGap per i diversi sistemi operativi Mobile. 10 Il termine software build sta ad indicare il processo di conversione del codice sorgente in un programma eseguibile. 33

34 Tabella 1: Funzioni supportate da Phonegap per i diversi OS Mobile parte 1 Tabella 2: Funzioni supportate da Phonegap per i diversi OS Mobile parte 2 34

35 PhoneGap dispone di una community molto attiva, infatti è possibile trovare una serie di plug-in di terze parti sviluppati per migliorare o estendere le funzionalità originali previste dal framework. Ciò che realmente manca in PhoneGap è un tool che permette di gestire la dinamicità dell'interfaccia grafica e gli effetti di transizione caratteristici delle applicazioni native per ambienti mobile. Questa lacuna viene brillantemente riempita grazie all'utilizzo di JavaScript con il quale è possibile realizzare qualunque effetto grafico, anche se ciò aumenta i tempi di sviluppo e rende il codice molto più complesso. D'altronde la natura stessa di JavaScript permette l'utilizzo di innumerevoli framework e librerie che semplificano lo sviluppo delle interfacce grafiche. Non a caso uno dei framework JavaScript più utilizzati per lo sviluppo di applicazioni PhoneGap è jquery Mobile [5], il quale implementa una serie di funzionalità che migliorano l'user experience come: componenti di interfaccia grafica, dialog box, messaggi di servizio, elementi dei form, ecc. Di seguito un diagramma molto esplicativo che mostra in che modo vengono estese le funzionalità di PhoneGap con l'uso di plug-in e librerie JavaScript. 35

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

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

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

Dettagli

Sistemi Mobili e Wireless Android Introduzione alla piattaforma

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

Dettagli

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

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

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

Programmazione in ambiente

Programmazione in ambiente Università Politecnica delle Marche Dipartimento di Ingegneria dell Informazione Programmazione in ambiente Android Laura Montanini - laura.montanini@univpm.it Corso di Tecnologie per le TLC 2013-2014

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

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

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

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

Dettagli

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

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

Dettagli

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

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

Dettagli

UNIVERSITA DEGLI STUDI DI L AQUILAL FACOLTA DI INGEGNERIA Applicazioni per dispositivi mobili: gli strumenti di sviluppo di Flash Lite. Diego Vasarelli Indice degli argomenti trattati. Introduzione agli

Dettagli

aggiunge del testo nella parte finale del tag, in questo caso la stringa da controllare.

aggiunge del testo nella parte finale del tag, in questo caso la stringa da controllare. Capitolo 6 jquery Negli ultimi anni è stata rilasciata una mole incalcolabile di framework JavaScript, più o meno completi, realizzati per supportare nel miglior modo possibile lo sviluppatore web aiutandolo

Dettagli

L ambiente di sviluppo Android Studio

L ambiente di sviluppo Android Studio L ambiente di sviluppo Android Studio Android Studio è un ambiente di sviluppo integrato (IDE, Integrated Development Environment) per la programmazione di app con Android. È un alternativa all utilizzo

Dettagli

Introduzione allo sviluppo ios con tecnologie web

Introduzione allo sviluppo ios con tecnologie web Capitolo 1 Introduzione allo sviluppo ios con tecnologie web L introduzione di iphone e la presentazione successiva di ipod touch e ipad hanno rivoluzionato il modo con il quale le persone interagiscono

Dettagli

Android development. Sviluppo di Mobile Apps sul sistema operativo di Google

Android development. Sviluppo di Mobile Apps sul sistema operativo di Google Android development Sviluppo di Mobile Apps sul sistema operativo di Google Agenda Giorni: Gio 14/04/2011 Ven 15/04/2011 Gio 21/04/2011 Ven 22/04/2011 Suddivisione: Mattina: teoria Pomeriggio: pratica

Dettagli

Sviluppo di applicazioni mobili su piattaforma Maemo

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

Dettagli

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

Dettagli

Sviluppare applicazioni per Windows Phone

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

Dettagli

Introduzione. In questo capitolo

Introduzione. In questo capitolo Introduzione I CSS ( Cascading Style Sheets, fogli di stile a cascata) sono la tecnologia elaborata dal W3C (World Wide Web Consortium; http://www.w3.org/) per definire l aspetto (caratteri, colori e impaginazione)

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 Eclipse. Prerequisiti. 1 Introduzione

Corso Eclipse. Prerequisiti. 1 Introduzione Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated

Dettagli

Manuale istruzioni. Software Vimar By-web per dispositivi mobili Android Manuale per l'uso

Manuale istruzioni. Software Vimar By-web per dispositivi mobili Android Manuale per l'uso Manuale istruzioni Software Vimar By-web per dispositivi mobili Android Manuale per l'uso Contratto di licenza Vimar con l'utente finale VIMAR SPA con sede in Marostica (VI), Viale Vicenza n. 14 (http://www.vimar.com),

Dettagli

Lezione 1. Sviluppo di Applicazioni per ios. Panoramica Tecnologica ios e ios SDK Strumenti di sviluppo per ios. Università di Pisa

Lezione 1. Sviluppo di Applicazioni per ios. Panoramica Tecnologica ios e ios SDK Strumenti di sviluppo per ios. Università di Pisa Lezione 1 Sviluppo di Applicazioni per ios Panoramica Tecnologica ios e ios SDK Strumenti di sviluppo per ios Oggi... ios e ios SDK Strumenti di sviluppo Linguaggio Objective C Fondamenti di OOP Dispositivi

Dettagli

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

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

Dettagli

www.italiancpp.org Conoscete Windows Bridge?

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

Dettagli

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

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Ambiente Zebra Link-OS versione 2.0

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

Dettagli

Linee guida per lo sviluppo di applicazioni web

Linee guida per lo sviluppo di applicazioni web Service and Documentation Centre for International Economic Cooperation Centro di Servizi e Documentazione per la Cooperazione Economica Internazionale www.informest.it Linee guida per lo sviluppo di applicazioni

Dettagli

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE

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

Dettagli

Introduzione ad Android

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

Dettagli

MagiCum S.r.l. Progetto Inno-School

MagiCum S.r.l. Progetto Inno-School MagiCum S.r.l. Progetto Inno-School Area applicazioni Autore: Alessio Salandi Revisione: 1.0 Data: 23/05/2013 Titolo: Documentazione tecnica - Grafica Diario File:Documentazione.pdf Sito: http://inno-school.netsons.org/

Dettagli

Processo di Sviluppo delle Applicazioni

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

Dettagli

Sme.UP Web Application

Sme.UP Web Application Sme.UP Web Application Web Application Web.UP Una interfaccia web per i vostri dati gestionali Il modulo applicativo Web.UP fornisce al progettista di siti Internet una serie di potenti strumenti per l'integrazione

Dettagli

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna Il CMS Moka Giovanni Ciardi Regione Emilia Romagna Moka è uno strumento per creare applicazioni GIS utilizzando oggetti (cartografie, temi, legende, database, funzioni) organizzati in un catalogo condiviso.

Dettagli

Applicazione: Piattaforma di Comunicazione Unificata

Applicazione: Piattaforma di Comunicazione Unificata Riusabilità del software - Catalogo delle applicazioni: Amministrativi/Contabile Applicazione: Piattaforma di Comunicazione Unificata Amministrazione: Regione Piemonte - Direzione Innovazione, Ricerca

Dettagli

MCA nasce per ottimizzare i tempi ed aumentare la produttività.

MCA nasce per ottimizzare i tempi ed aumentare la produttività. MCA, ossia Multimedia Collaboration APP, è la soluzione di web collaboration contributiva e interattiva realizzata da HRC per apportare nuove funzionalità nella gestione di meeting e per poter condividere

Dettagli

Per la massima confidenzialità questo CV è anonimo! - Per poter accedere al recapito di questo candidato Lei deve essere un azienda identificata

Per la massima confidenzialità questo CV è anonimo! - Per poter accedere al recapito di questo candidato Lei deve essere un azienda identificata Per la massima confidenzialità questo CV è anonimo! - Per poter accedere al recapito di questo candidato Lei deve essere un azienda identificata Programmatore Sono un appassionato di programmazione e tecnologia

Dettagli

Fogli di stile CSS. 1 Istituto Italiano Edizioni Atlas

Fogli di stile CSS. 1 Istituto Italiano Edizioni Atlas Fogli di stile CSS Il foglio CSS (Cascading Style Sheet, foglio di stile a cascata) è un documento in formato testuale che definisce il controllo sulla visualizzazione della pagina HTML e sul suo layout,

Dettagli

Programmazione Android

Programmazione Android Programmazione Android Giovanni Perbellini, Stefano Cordibella Università di Verona EDALab S.r.l. Agenda Introduzione Android Overview Ambiente di sviluppo Esempi Helloworld Weather 2 1 Cos è Android?

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 1. Introduzione a Internet e al WWW Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica

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

L'elaborazione dei dati su client Linguaggi di script

L'elaborazione dei dati su client Linguaggi di script Pagina 1 di 5 L'elaborazione dei dati su client Linguaggi di script Attualmente si tende a scaricare sul computer dell'utente piccoli programmi (Javascript o applet Java) che svolgano parte dell'elaborazione

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica SOFTWARE Francesco Tura francesco.tura@unibo.it 1 Le componenti del calcolatore: HARDWARE E SOFTWARE HARDWARE parti che compongono fisicamente il calcolatore componente multifunzionale

Dettagli

PARTE IV: I sistemi operativi

PARTE IV: I sistemi operativi PARTE IV: I sistemi operativi 1 Definizione (da Wikipedia) Il sistema operativo, abbreviato in SO (in inglese OS, "operating system") è un insieme di componenti software, che garantisce l'operatività di

Dettagli

Strumenti per lo sviluppo del software

Strumenti per lo sviluppo del software Lo sviluppo del software Strumenti per lo sviluppo del software Lo sviluppo del software è l attività centrale del progetto e ha lo scopo di produrre il codice sorgente che, una volta compilato e messo

Dettagli

Ambiente Zebra Link-OS versione 2.0

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

Dettagli

sito web sito Internet

sito web sito Internet Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile

Dettagli

Corso Android Corso Online Programmatore Android

Corso Android Corso Online Programmatore Android Corso Android Corso Online Programmatore Android Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso Modulo Uno - Programmazione J2ee 1) Programmazione

Dettagli

CAPITOLO 5 - Sistemi Operativi Moderni

CAPITOLO 5 - Sistemi Operativi Moderni CAPITOLO 5 - Sistemi Operativi Moderni PRESENTAZIONE DI INSIEME Vedremo ora come si è evoluta nel tempo la struttura di un sistema operativo, per passare dalle vecchie strutture di tipo normalmente modulari,

Dettagli

Corso Programmazione Java Android. Programma

Corso Programmazione Java Android. Programma Corso Programmazione Java Android Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

Dettagli

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

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

Dettagli

Elenco argomenti (1/2)

Elenco argomenti (1/2) Dev ios Argomenti trattati Elenco argomenti (1/2) ios, il sistema operativo di iphone/ipad I 4 livelli dell'architettura ios: Cocoa touch Media Core services Core OS Le App: struttura e funzionamento Area

Dettagli

Le sezioni logiche di una pagina web

Le sezioni logiche di una pagina web Le sezioni logiche di una pagina web Il primo passo da fare nella realizzazione di un sito web è pianificare i contenuti. Strutturare logicamente i contenuti di una pagina, creare un template (modello)

Dettagli

WEBGATE400 ACTIVEX CONTROL. Manuale Programmatore

WEBGATE400 ACTIVEX CONTROL. Manuale Programmatore WEBGATE400 ACTIVEX CONTROL Manuale Programmatore Pagina 1 SOMMARIO Webgate400 ActiveX Control... 3 1 A Chi è destinato... 3 2 Pre requisiti... 3 3 Introduzione... 3 3.1 Requisiti di sistema... 3 3.2 Distribuzione

Dettagli

Indice PARTE PRIMA L INIZIO 1

Indice PARTE PRIMA L INIZIO 1 Indice Introduzione XIII PARTE PRIMA L INIZIO 1 Capitolo 1 Esplorare il World Wide Web 3 1.1 Come funziona il World Wide Web 3 1.2 Browser Web 10 1.3 Server Web 14 1.4 Uniform Resource Locators 15 1.5

Dettagli

IBM COBOL for AIX, V4.1 offre supporto per l'ultima architettura dei sistemi POWER7 nonché migliorie del funzionamento e utilizzo

IBM COBOL for AIX, V4.1 offre supporto per l'ultima architettura dei sistemi POWER7 nonché migliorie del funzionamento e utilizzo ZP10-0319, 17 agosto 2010 IBM COBOL for AIX, V4.1 offre supporto per l'ultima architettura dei sistemi POWER7 nonché migliorie del funzionamento e utilizzo Indice 1 Panoramica 2 Descrizione 2 Prerequisiti

Dettagli

Scrivere una applicazione html, css e javascript per Android

Scrivere una applicazione html, css e javascript per Android Scrivere una applicazione html, css e javascript per Android Prima di tuffarsi dentro, vorrei stabilire rapidamente il campo di gioco. In questo capitolo, definisco termini chiave, confrontare i pro e

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione HTML e Linguaggi Politecnico di Facoltà del Design Bovisa Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it http://home.dei.polimi.it/cugola Indice Il linguaggio del

Dettagli

Riferimento rapido di Novell Vibe Mobile

Riferimento rapido di Novell Vibe Mobile Riferimento rapido di Novell Vibe Mobile Marzo 2015 Introduzione L'accesso mobile al sito di Novell Vibe può essere disattivato dall'amministratore di Vibe. Se non si riesce ad accedere all'interfaccia

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

Flavio De Paoli depaoli@disco.unimib.it

Flavio De Paoli depaoli@disco.unimib.it Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato

Dettagli

Evoluzione dell applicazione mobile Travel Intoscana e realizzazione del sistema delle applicazioni territoriali

Evoluzione dell applicazione mobile Travel Intoscana e realizzazione del sistema delle applicazioni territoriali Evoluzione dell applicazione mobile Travel Intoscana e realizzazione del sistema delle applicazioni territoriali CIG: 6261506635 Specifiche tecniche Pagina 1 Sommario 1. Oggetto del servizio... 3 1.1 Contesto

Dettagli

Sistemi Mobili e Wireless Android Primi passi

Sistemi Mobili e Wireless Android Primi passi Sistemi Mobili e Wireless Android Primi passi Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Ambiente di sviluppo L'ambiente

Dettagli

Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4. Powered by: Vincenzo Acinapura

Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4. Powered by: Vincenzo Acinapura Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4 Introduzione Salve a tuttiù Mi presento mi chiamo Vincenzo Acinapura e studio ingegneria informatica,

Dettagli

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

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

Dettagli

Android AppInventor. Argomenti trattati. Introduzione. AppInventor. etc. Google Android Android SDK, Android Market

Android AppInventor. Argomenti trattati. Introduzione. AppInventor. etc. Google Android Android SDK, Android Market Android v. 1.0.1 Argomenti trattati Android AppInventor Introduzione Google Android Android SDK, Android Market AppInventor Architettura Sviluppo di applicazioni etc Storia Introduzione Android Android

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

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

Strumenti per lo sviluppo

Strumenti per lo sviluppo Strumenti per lo sviluppo Librerie Javascript jquery script.aculo.us Componenti aggiuntivi per i browser firefox e chrome Firebug Web developer Alcune utility on-the-fly Generatore di sorgente di codice

Dettagli

Introduzione a API e game engine per la programmazione grafica

Introduzione a API e game engine per la programmazione grafica Introduzione a API e game engine per la programmazione grafica OpenGL e WebGL Davide Gadia Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a.

Dettagli

CONTROLLO REMOTO DI UNA TELECAMERA IP

CONTROLLO REMOTO DI UNA TELECAMERA IP Scuola Media Pietro Coppo CONTROLLO REMOTO DI UNA TELECAMERA IP Tesi di Maturità Professionale Alunno: Salben Kamberi Mentore: Maurizio Škerlič Anno scolastico 2013/2014 INDICE INDICE... 2 INTRODUZIONE...

Dettagli

CONTROLLO REMOTO DI UNA TELECAMERA IP

CONTROLLO REMOTO DI UNA TELECAMERA IP Scuola Media Pietro Coppo Isola CONTROLLO REMOTO DI UNA TELECAMERA IP Tesi di maturità professionale Indirizzo Tecnico Informatico Alunno: Massimiliano Bevitori Mentore: Maurizio Škerlič Anno Scolastico:

Dettagli

Visual Studio 2008: rapido, flessibile, efficiente

Visual Studio 2008: rapido, flessibile, efficiente OGGETTO: Visual Studio 2008 Gentile Cliente, Microsoft è lieta di annunciare la disponibilita di Visual Studio 2008. Microsoft Visual Studio è una famiglia di prodotti progettati per consentire agli sviluppatori

Dettagli

Corso di HTML. Prerequisiti. Modulo L3. 1-Concetti generali. Browser Rete Internet Client e server. M. Malatesta 1-Concetti generali-12 28/07/2013

Corso di HTML. Prerequisiti. Modulo L3. 1-Concetti generali. Browser Rete Internet Client e server. M. Malatesta 1-Concetti generali-12 28/07/2013 Corso di HTML Modulo L3 1-Concetti generali 1 Prerequisiti Browser Rete Internet Client e server 2 1 Introduzione In questa Unità introduciamo alcuni semplici elementi del linguaggio HTML, con il quale

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

UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA

UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria Enzo Ferrari Sede di Modena Corso di Laurea Specialistica in Ingegneria Informatica Progettazione e Sviluppo dell Applicazione Web

Dettagli

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008

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

Dettagli

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

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

Dettagli

Siti interattivi e dinamici. in poche pagine

Siti interattivi e dinamici. in poche pagine Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata

Dettagli

Vocabolario & Terminologie Informatiche

Vocabolario & Terminologie Informatiche Vocabolario & Terminologie Informatiche HARWARE: In ingegneria elettronica e informatica con il termine hardware si indica la parte fisica di un computer, ovvero tutte quelle parti elettroniche, elettriche,

Dettagli

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0)

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Nota Bene: Si raccomanda di leggere queste dispense di fronte al computer, provando passo dopo passo le funzionalità descritte. Per

Dettagli

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

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

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

Ingegneria del Software UML - Unified Modeling Language

Ingegneria del Software UML - Unified Modeling Language Ingegneria del Software UML - Unified Modeling Language Obiettivi. Presentare un approccio visuale alla progettazione. Illustrare i vantaggi dell utilizzo di diagrammi nella fase di progettazione. Rispondere

Dettagli

Sommario della lezione

Sommario della lezione Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 2 LEZIONE STRUTTURE DEI SISTEMI OPERATIVI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione

Dettagli

Disegnare il Layout. www.vincenzocalabro.it 1

Disegnare il Layout. www.vincenzocalabro.it 1 Disegnare il Layout www.vincenzocalabro.it 1 Il problema dell interfaccia Una buona interfaccia deve assolvere a diverse funzioni: far percepire i contenuti permettere di individuare le principali aree

Dettagli

7 CATEGORIE DI ARGOMENTI FORMATIVI

7 CATEGORIE DI ARGOMENTI FORMATIVI 7 CATEGORIE DI ARGOMENTI FORMATIVI Dall unione di due grandi esperienze, nasce un SERVIZIO dedicato a voi, la FORMAZIONE. Nei settori della Tecnologia e dell Informatica siamo giunti ormai ad un punto

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

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

Sviluppo su Android. Linux Day Torino 2010

Sviluppo su Android. Linux Day Torino 2010 Sviluppo su Android Linux Day Torino 2010 Francesco Ronchi francesco.ronchi@gmail.com - www.synesthesia.it Cos'è Android Sistema operativo dedicato ai device mobili: cellulari, palmari, tablet, navigatori...

Dettagli

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

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

Dettagli

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo tesi di laurea Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo Anno Accademico 2009/2010 relatore Ch.mo prof. Marcello Cinque correlatore Ing. Catello di

Dettagli

Tecnologie e Programmazione Web

Tecnologie e Programmazione Web Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete

Dettagli

STRUTTURA DEL PERCORSO DIDATTICO

STRUTTURA DEL PERCORSO DIDATTICO STRUTTURA DEL PERCORSO DIDATTICO MODULO NUMERO DI CORSI CFU ATTIVITÀ FORMATIVA ORE DIDATTICA FRONTALE ORE DI STUDIO INDIVIDUALE, DI GRUPPO, TIROCINIO CORE 12 corsi 18 CFU 108 342 TOOLS 4 corsi 14 CFU 84

Dettagli

Sistemi Informativi Distribuiti

Sistemi Informativi Distribuiti Corso di Laurea Magistrale in Ingegneria Gestionale Corso di Sistemi Informativi Modulo II A. A. 2013-2014 SISTEMI INFORMATIVI MODULO II Sistemi Informativi Distribuiti 1 Sistemi informativi distribuiti

Dettagli

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente INTRODUZIONE Per sviluppare applicazioni in grado di girare su sistemi Android servono tre cose: il Java JDK (Java Development Kit), che contiene tutti gli strumenti necessari a sviluppare nel linguaggio

Dettagli