Cordova
Si tratta di un progetto Apache, distribuito con licenza open source, che è stato creato da un’azienda canadese, Nitobi, e donato alla Apache Software Foundation. Cordova permette di creare applicazioni mobili multipiattaforma con una singola base di codice JavaScript. L’ambiente di esecuzione mette a disposizione dello sviluppatore tutte le funzioni specifiche dell’hardware del telefono e consente l’estensione per mezzo di plugin.
L’installazione si fa, ovviamente con npm, quindi, per iniziare occorre scaricare il pacchetto contenente node e npm da nodejs.org. Il software è disponibile per Windows, OS X e Linux.
Dalla riga di comando di Windows o OS X digitiamo:
npm install -g cordova
per installare l’ambiente Cordova. Il flag -g indica che vogliamo un’installazione globale, cioè per tutti gli utenti. Questo richiede i permessi di amministratore sulla macchina su cui operiamo. Se abbiamo configurato il nostro utente come utente non privilegiato, come è buona pratica, dovremo autorizzare l’installazione, o premettere la parola chiave sudo ai comandi su Linux o OS X. In caso di problemi bisognerà abilitare la nostra login all’uso di sudo, per esempio, su Mac, collegandosi con una login di amministrazione e aggiungendo la riga
nomeutente ALL=(ALL) ALL
al file /private/etc/sudoers.
Per creare lo scheletro di un’applicazione, lanciamo il comando
cordova create MyApp
cd MyApp
Nella directory MyApp troveremo le cartelle www, plugins e platforms. La prima contiene i file html e JavaScript dell’applicazione, la seconda i plugin Cordova per le funzionalità aggiuntive e l’ultima contiene il codice per ogni piattaforma.
Inizialmente, questa cartella è vuota. Popoliamola, ad esempio con
cordova platform add ios
Adesso abbiamo il codice di un’applicazione iOS pronta per la compilazione, dentro la cartella platforms/ios. Se stiamo usando un mac e abbiamo installato l’ambiente Xcode, possiamo dare il comando
cordova compile ios
cordova run ios
E avremo davanti a noi l’emulatore e il codice dell’applicazione in esecuzione.
Senza entrare nei dettagli, che conviene lasciare alla documentazione del pacchetto, ecco un ritaglio di codice JavaScript che mostra come leggere le coordinate Gps in JavaScript
this.addLocation = function(event) {
event.preventDefault();
navigator.geolocation.getCurrentPosition(
function(position) {
alert(position.coords.latitude + ‘,' + position.coords.longitude);
},
function() {
alert(‘Error getting location');
});
return false;
};
Per fare un altro esempio, se desideriamo ricevere notifiche push da un server remoto occorre installare un plugin
cordova plugin add phonegap-plugin-push
E gestire le notifiche dal server remoto utilizzando lo scheletro di codice che segue, in cui possiamo utilizzare le variabili indicate nei commenti
var push = PushNotification.init
({ "android": {"senderID":
"12345679"}, "ios": {"alert": "true",
"bage": "true", "sound": "true"},
"windows": {} });
push.on(‘registration', function(data) {
// data.registrationId
});
push.on(‘notification', function(data) {
// data.message,
// data.title,
// data.count,
// data.sound,
// data.image,
// data.additionalData
});
push.on(‘error', function(e) {
// e.message
});