Apache Cordova
# Apache Cordova

Apache Cordova (ex PhoneGap) è un framework per lo sviluppo di applicativi per dispositivi mobili originariamente prodotto da Nitobi. Adobe acquisì Nitobi nel 2011 e creò il nuovo marchio PhoneGap, che fu poi successivamente rilasciato in versione open source e chiamato nuovamente Apache Cordova.

Al progetto Apache Cordova contribuiscono: Adobe, BlackBerry, Google, IBM, Intel, Microsoft, Mozilla e altri.

## Funzionamento

Apache Cordova permette ai programmatori di creare applicazioni mobili usando CSS3, HTML5 e JavaScript invece di affidarsi ad API specifiche delle piattaforme Android, iOS o Windows Phone. Il framework incapsula poi il codice CSS, HTML e JavaScript generato all'interno delle predette piattaforme. Le applicazioni generate dal framework non possono né considerarsi puramente native (il rendering della struttura grafica è fatto con visualizzazioni web) né basate completamente sul web (Il programma viene impacchettato come una applicazione per la distribuzione e hanno accesso alle API native dei dispositivi mobili). Mescolare snippet di codice nativo e ibrido è possibile dalla versione 1.9. Apache Cordova incapsula i programmi in applicativi mobili con Appery.io o Intel XDK.

Apache Cordova comprende un migliaio di plugin-in scritti nel linguaggio nativo del sistema operativo (ad es. Java, Objective C, C#...) che utilizzano le API del sistema operativo (Android, iOS, Windows..) per essere integrate, attraverso il linguaggio JavaScript, all'interno del codice html e, di conseguenza, permette agli sviluppatori di accedere all'hardware dello smartphone in modo efficace. È possibile controllare la fotocamera, il sensore GPS, il Bluetooth il giroscopio e ogni altro dispositivo hardware dello smartphone.

Apache Cordova richiama in ogni pagina html un file JavaScript che funge da vero connettore con le API e i plugin specifici della piattaforma. Sebbene questo processo è necessariamente più lento rispetto ad un approccio nativo bisogna sottolineare come la classica webview (un vero e proprio browser incapsulato nelle applicazioni Cordova) risulti sempre più veloce di anno in anno, come report di Hetatech sui benchmark delle App Ibride in WebView. Ancora non si può parlare di eguaglianza con le app Native ma di performance accettabili rispetto a dei costi meno esosi che spesso sono la scelta primaria di molte aziende e sviluppatori. Si prevede che dal 2022 tutte le attività riservate ai linguaggi nativi per le specifiche piattaforme come iOS o Android saranno unificate nel linguaggio ECMA6, evoluzione del JavaScript. Per questo motivo le stesse APP ibride sostituiranno tutte le applicazioni sviluppate in modo nativo diventando anche esse native in browser. L'avvento del supporto Canvas e WebGL permette infatti di rendere lo stesso browser il sistema operativo e contenitore di ogni APP, nonché di ogni tipo di funzionalità specifica legata ai dispositivi mobile.

## Piattaforme supportate

Apache Cordova attualmente supporta i sistemi operativi Apple iOS, Bada, BlackBerry, Firefox OS, Google Android, LG webOS, Microsoft Windows Phone (7, 8 e 10), Nokia Symbian, Tizen (SDK 2.x) e Ubuntu Touch.

