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 parte di questo libro può essere riprodotta, memorizzata in un sistema di recupero, o trasmessa in qualsiasi forma o con qualsiasi mezzo, senza la previa autorizzazione scritta dell editore, eccetto nel caso di brevi citazioni incorporate in articoli di critica o recensioni. Ogni sforzo è stato fatto per la preparazione di questo libro per assicurare l'accuratezza delle informazioni presentate. Tuttavia, le informazioni contenute in questo libro viene venduto senza garanzia, espressa o implicita. Né l'autore, né i suoi concessionari e distributori saranno ritenuti responsabili per eventuali danni causati o presumibilmente causati, direttamente o indirettamente da questo libro. Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 3
Sommario PREMESSA... 6 INTRODUZIONE... 7 UN PO DI STORIA..... 8 FUNZIONALITÀ... 9 FLUSSI DI SVILUPPO DELLE APP... 11 PIATTAFORME SUPPORTATE... 12 CODIFICA DELLE APPLICAZIONI CORDOVA... 13 COSTRUIRE UNA APPLICAZIONE CORDOVA... 14 I PLUGIN PER CORDOVA... 15 PREREQUISITI ED INSTALLAZIONI... 16 CONFIGURARE L AMBIENTE DI LAVORO CON WINDOWS... 16 CREIAMO ADESSO LA STRUTTURA BASE DI UN PROGETTO... 23 IMPORTIAMO IL PROGETTO IN ECLIPSE... 32 CREIAMO UN DISPOSITIVO VIRTUALE ( EMULATORE)... 35 ANTEPRIMA DELLA NOSTRA APP... 37 CONSIDERAZIONI SULLO SVILUPPO... 43 IL FRAMEWORK RATCHET... 44 LE API DI CORDOVA... 62 DARE LE GIUSTE AUTORIZZAZIONI ALLE APPLICAZIONI... 63 API PER GESTIRE I DATI... 64 GESTIRE LA CREAZIONE DEL DATABASE E DEGLI ERRORI... 68 VISUALIZZAZIONE DEI DATI SALVATI... 69 INSERIMENTO DEI DATI IN TABELLA DA FORM... 73 CANCELLAZIONE DEI DATI DA UNA TABELLA... 78 TESTARE IL FUZIONAMENTO DELLE LIBRERIE CORDOVA... 80 Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 4
API - GESTIAMO LA FOTOCAMERA... 84 API - GESTIRE LA VERIFICA DELLA CONNESSIONE INTERNET... 86 API - GESTIRE LA GEOLOCALIZZAZIONE... 88 API - INVIARE DATI AD UN SERVER REMOTO... 91 API - La gestione dei messaggi... 99 CREARE IL FILE APK DA PUBBLICARE SULLO STORE... 101 PUBLICARE LA NOSTRA APP SUL GOOGLE PLAY STORE... 106 CREIAMO IL FILE IPA PER IOS... 107 PUBBLICARE LA NOSTA APP SU IOS ITUNES STORE... 111 AGGIORNARE UNA APP RESPINTA... 116 PER FINIRE.... 116 Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 5
PREMESSA La tua prima APP con CORDOVA Non sarò prolisso nella introduzione e nemmeno nella spiegazione di ogni paragrafo di questo libro. Ho cercato di essere diretto, semplice e chiaro, sono un tecnico e so che chi leggerà questo libro è comunque un tecnico e vuole andare subito al dunque, capire, risolvere problemi e mettere in pratica quello che si è letto. Come sta scritto sulla home page del mio sito personale www.gfasulo.it c'è scritto il seguente mio pensiero che da allora non è cambiato anzi si è rafforzato, e recita così. A volte è vero, si ha bisogno di far vedere cosa abbiamo realizzato o forse di dimostrarlo a noi stessi o forse il sito ed in questo caso il libro é l occasione per fare un po d ordine in tanto materiale accumulato. Mi sento come tanti che da anni lavorano anche perché ci credono, perché provano ancora quella soddisfazione dentro quando realizzano qualcosa da soli o insieme agli altri, quando, nonostante tutte le batoste e i problemi quotidiani vanno avanti, perché lavorare é bello perché si continua ad imparare e a confrontarsi. Mettere in comune attività, informare, offrire strumenti, far conoscere gli sforzi fatti per raggiungere un fine o uno scopo o la creazione di un software aiuta ad un vero apprendimento attraverso l uso delle nuove tecnologie. Ecco, questo libro riflette quanto appena detto, anche il suo costo lo riflette più che un vero e proprio prezzo lo definirei un contributo per quanto fatto durante le notti di lavoro passate nel ricercare documentazione, sperimentare, testare ed in fine condividere quanto si è appreso. Spero che sia di aiuto a tutti coloro che vorranno introdursi nel mondo della programmazione delle APP con CORDOVA. Se volete lasciatemi le vostre considerazioni su quanto realizzato, vedrò di migliorare Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 6
INTRODUZIONE Le applicazioni mobili sono ormai sparse in tutto il mondo, a partire dagli smartphone e tablet, per andare poi su orologi intelligenti, e ben presto le troveremo su altri dispositivi indossabili. Tuttavia, lo sviluppo per ogni piattaforma mobile separata può essere un compito arduo, soprattutto se le risorse sono limitate, o se si è un singolo sviluppatore. Se questo è anche il vostro caso, Apache Cordova può tornare molto utile, fornendo un modo per sviluppare applicazioni mobili utilizzando tecnologie web standard quali - HTML5, CSS3 e JavaScript. Per chi è questo libro: Questo libro è utile a chi è già un web developer almeno nella sua eccezione più basilare e/o ha già una buona familiarità con i linguaggi di programmazione web quali ad es. HTML5, CSS3, JQuery etc. etc. Che cosa troverete in questo libro: Un sacco di informazioni dettagliate su Apache Cordova: cosa fa e come funziona Il codice d esempio completo dello sviluppo di una APP con l uso della fotocamera e del GPS. Quello che non troverete in questo libro: Tutto quello che verte allo sviluppo web mobile; questo libro parla di Apache Cordova, non dei linguaggi di programmazione per lo sviluppo mobile quali ad es. HTML5, AJAX, JQUERY, CSS3 etc. etc. Cosa vi servirà per sviluppare le vostre APP: Per Android un PC con sistema operativo Windows o OSX 10.7 o superiore Per IOS un PC con sistema operativo OSX 10.7 o superiore Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 7
UN PO DI STORIA.. Nel 2009, una startup chiamata Nitobi ha creato PhoneGap, una API open source per accedere alle risorse mobili native dei dispositivi, con l'obiettivo di consentire agli sviluppatori di creare applicazioni mobili utilizzando tecnologie web standard. Nella visione di Nitobi, la maggior parte delle applicazioni mobili saranno presto sviluppate con PhoneGap, ma gli sviluppatori avrebbero comunque la possibilità di scrivere codice nativo quando necessario, sia a causa di problemi di prestazioni, o per la mancanza di un metodo di accesso hardware specifico. Adobe ha acquisito Nitobi nel 2011. Tuttavia, il nucleo open source è stato donato alla Apache Software Foundation e rimarchiati con il nome di Cordova. Un'analogia comune che si trova spesso in Cordova e PhoneGap è quello dell utilizzo del WebKit, il motore di rendering delle pagine usato dai maggiori browser come quello di Chrome o Safari. Ovviamente, le differenze tra Cordova e PhoneGap erano minime all'inizio. Con il tempo, Adobe ha sviluppato un proprio set di funzionalità proprietarie, mentre Cordova era ( ed è tuttora) supportato dalla comunità open source. Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 8
FUNZIONALITÀ In sostanza, Cordova non ha limitazioni in relazione alle applicazioni sviluppate nativamente. Quello che si ottiene con Cordova è semplicemente una API JavaScript, che funge da involucro per il codice nativo ed è coerente tra i dispositivi. Si può considerare Cordova come un contenitore di applicazioni con una vista web, che copre l'intero schermo del dispositivo. La vista web usata da Cordova è la stessa vista web utilizzata dal sistema operativo nativo. Su ios, questa è data dalla classe Objective- C UIWebView; su Android, da android.webkit.webview. Apache Cordova viene fornito con un set di plugin pre-sviluppati che forniscono l'accesso alla fotocamera del dispositivo, al GPS, al sistema di file ecc. Poiché i dispositivi mobili si evolvono, aggiungendo il supporto ad hardware aggiuntivo, per usarli bisognerà semplicemente sviluppare nuovi plugin. Infine, le applicazioni Cordova si installano come le applicazioni native. Questo significa che realizzato il vostro codice per ios si produrrà un file IPA, mentre per Android un file APK e per Windows Phone produce un file XAP. Se ci si mette abbastanza impegno nel processo di sviluppo, gli utenti non potrebbero nemmeno rendersi conto che non stanno usando un'applicazione nativa. Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 9
Eccovi uno schema logico di funzionamento di Cordova: Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 10
FLUSSI DI SVILUPPO DELLE APP La tua prima APP con CORDOVA Ci sono due percorsi di base che si possono seguire durante lo sviluppo di una APP con Cordova e che vi dovreste chiedere prima di sviluppare una APP: Quando la vostra intenzione è quella di implementare un'applicazione per il maggior numero di piattaforme possibili, con poco o nessun sviluppo specifico per la piattaforma, è necessario utilizzare il flusso di lavoro cross-platform. Il principale strumento di supporto questo flusso di lavoro è il Cordova Command -Line Interface ( CLI ), che funge da un'astrazione di livello più elevato per la configurazione e la creazione dell'applicazione per diverse piattaforme. Questo è il percorso di sviluppo più comunemente usato. Quando si prevede di sviluppare l'applicazione per una piattaforma specifica, sarà quindi necessario utilizzare il flusso di lavoro specifico per la piattaforma scelta. In questo modo, si sarà in grado di ottimizzare e modificare il codice a un livello più basso mescolando componenti nativi con componenti Cordova. Anche per questo percorso è possibile utilizzare questo approccio per lo sviluppo crossplatform, ma il processo di sviluppo sarà più lungo e noioso. Di solito è consigliabile iniziare con il flusso di lavoro di sviluppo cross-platform in quanto il passaggio da questo metodo allo sviluppo per una piattaforma specifica risulterà abbastanza semplice. Tuttavia, se si avvia inizialmente con lo sviluppo per una piattaforma dedicata, non si sarà in grado di passare allo sviluppo cross-platform con semplicità in quanto il CLI ( Command Line Interface di Cordova ) sovrascriverà le personalizzazioni, una volta che si esegue il processo di compilazione perdendo le personalizzazioni fatte a livello di codice nativo. Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 11