# Apache Cordova

Apache Cordova ou plus anciennement Apache Callback ou PhoneGap, est un framework open-source développé par la Fondation Apache. Il permet de créer des applications pour différentes plateformes (Android, Firefox OS, iOS, Ubuntu, Windows 8...) en HTML, CSS et JavaScript.
Les applications qui en résultent sont hybrides, ce qui signifie qu'elles ne sont ni vraiment natives, ni purement basées sur les langages HTML, CSS et JavaScript.

## Histoire

PhoneGap est à l'origine un projet développé par Nitobi Software, puis par Adobe Systems à la suite du rachat de Nitobi par Adobe.
En 2011, Adobe donne le projet à la Fondation Apache, qui le renomme Apache Callback puis Apache Cordova.
Étant dorénavant basé sur Apache Cordova, le but d'Adobe PhoneGap n'est plus de développer la base du système, mais seulement des fonctionnalités autour.
En 2014, IBM Security X-Force Research annonce une faille de sécurité importante dans Apache Cordova (CVE-2014-3501, corrigée). À cette occasion, la prévalence de Apache Cordova est estimée à 6 % de l'ensemble des applications Android.

## Plateformes supportées

Apache Cordova supporte un nombre variable de plates-formes suivant les versions. Les anciens systèmes (HP webOS, Windows Phone 7...) sont au fur et à mesure abandonnés au profit de nouveaux (Firefox OS, Tizen...).
Le tableau ci-dessous est une liste des composants et fonctionnalités supportés de chaque OS pour la version 2.7.0 d'Apache Cordova :
| Fonctionnalités | iPhone EDGE, 2G et 3G | iPhone 3GS et + | Android | Qt | BlackBerry OS 4.6–4.7 | BlackBerry 5.x–6.0+ | webOS | Symbian | Bada | Windows Phone | Tizen |
| Accéléromètre | Oui | Oui | Oui | Oui | NC | Oui | Oui | Oui | Oui | Oui | Oui |
| Caméra | Oui | Oui | Oui | Oui | NC | Oui | Oui | Oui | Oui | Oui | Oui |
| Boussole | NC | Oui | Oui | Oui | NC | NC | NC | NC | Oui | Oui | Oui |
| Contacts | Oui | Oui | Oui | Oui | NC | Oui | NC | Oui | Oui | Oui | Oui |
| Gestion des fichiers | Oui | Oui | Oui | Oui | NC | Oui | NC | NC | NC | Oui | Oui |
| Géolocalisation | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
| Media | Oui | Oui | Oui | Non | NC | NC | NC | NC | NC | Oui | Oui |
| Réseau | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
| Notifications (Apple Push, pop-up) | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
| Notifications (Sonnerie) | Oui | Oui | Oui | Non | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
| Notifications (Vibrations) | Oui | Oui | Oui | Non | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
| Stockage | Oui | Oui | Oui | Oui | NC | Oui | Oui | Oui | NC | Oui | Oui |
Voici le tableau équivalent pour Cordova 3.5.0 :
| Fonctionnalités | Amazon Fire OS | Android | Blackberry10 | Firefox OS | iOS | Ubuntu | Windows Phone 8 | Windows 8 | Tizen |
| Accéléromètre | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
| Caméra | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
| Boussole | Oui | Oui | Oui | Non | Oui | Oui | Oui | Oui | Oui |
| Contacts | Oui | Oui | Oui | Oui | Oui | Oui | Oui | NC | Non |
| Écran d'accueil | Oui | Oui | Oui | Non | Oui | Oui | Oui | Oui | Non |
| Gestion des fichiers | Oui | Oui | Oui | Non | Oui | Oui | Oui | Oui | Non |
| Géolocalisation | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
| Internationalisation | Oui | Oui | Non | Non | Oui | Oui | Oui | Non | Non |
| Media | Oui | Oui | Oui | Non | Oui | Oui | Oui | Oui | Oui |
| Réseau | Oui | Oui | Oui | Non | Oui | Oui | Oui | Oui | Oui |
| Notifications (Apple Push, pop-up) | Oui | Oui | Oui | Non | Oui | Oui | Oui | Oui | Oui |
| Stockage | Oui | Oui | Oui | Non | Oui | Oui | Oui | Oui | Oui |