Anche se non strettamente legato a Ionic, il progetto ngCordova contribuisce a semplificare lo sviluppo di applicazioni mobile ibride per Cordova e PhoneGap basate su AngularJS. Ciò che unisce ngCordova a Ionic è lo stesso team di sviluppatori che, rendendo indipendente questo progetto da Ionic, hanno voluto consentire il suo utilizzo anche a chi non utilizza il loro framework mobile.
In estrema sintesi, ngCordova mette a disposizione dello sviluppatore un insieme di oltre settanta wrapper dei più comuni plugin di Cordova, trasformandoli in servizi Angular e quindi integrati nell'ambiente di sviluppo del framework.
Per utilizzare ngCordova nelle nostre applicazioni mobile, dopo aver scaricato l'occorrente da GitHub, occorre inserire nella pagina HTML che contiene la view principale un riferimento alla libreria prima di cordova.js e dopo AngularJS o Ionic, come indicato dal seguente esempio di codice:
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/ngCordova/ng-cordova.js"></script>
<script src="cordova.js"></script>
Una volta inserito il riferimento alla libreria, possiamo indicarne la dipendenza nella definizione della nostra applicazione:
angular.module('starter', ['ionic', 'ngCordova', ...])
A questo punto abbiamo a disposizione i servizi Angular che fanno da wrapper ai plugin di Cordova. Per il loro effettivo utilizzo nella nostra applicazione è opportuno utilizzare il seguente pattern:
$ionicPlatform.ready(function() {
//codice che usa il plugin
});
L'approccio di eseguire il codice che coinvolge un plugin di Cordova solo dopo l'inizializzazione di Ionic (e quindi indirettamente di Cordova) si rende necessario per assicurarci che il plugin e tutta l'infrastruttura di supporto sia già stata caricata prima di essere utilizzata.
Naturalmente non dobbiamo dimenticarci di rendere disponibile il plugin al nostro progetto utilizzando l'opportuno comando della Command Line Interface:
ionic plugin add <nome-plugin>
Nelle prossime lezioni esploreremo i servizi di ngCordova che consentono l'accesso ad alcuni dei più interessanti plugin di Cordova, lasciando al lettore l'esplorazione dell'elenco completo.