developpeur-ecran-bureau-espace-moderne
Blog, Tutoriels

Cordova : Qu’est-ce que c’est et Pourquoi l’Éviter ?

Vous cherchez des infos sur Cordova ? Attention, il y a le framework de développement et la marque de vêtements de ski. Pas de panique.

Cet article parle uniquement du framework et vous explique ce que c’est et pourquoi il faut l’éviter.

Qu’est-ce que Apache Cordova ? Une définition rapide

Apache Cordova est un framework open source pour créer des applications mobiles. Il est géré par la Fondation Apache.

Le principe est simple : vous utilisez des technologies web que vous connaissez déjà, comme HTML, CSS et JavaScript, pour développer votre application. Ensuite, Cordova « enveloppe » ce code web dans une application native pour différentes plateformes. Ça veut dire que vous écrivez la base de code une seule fois, et elle fonctionne sur Android, iOS et autres.

Les principaux arguments de Cordova sont :

  • Code réutilisable sur différentes plateformes.
  • Support pour le fonctionnement hors-ligne de l’application.
  • Accès aux fonctions natives du téléphone (caméra, GPS…).
  • C’est un projet open source et gratuit.

Comment démarrer avec Cordova en 4 étapes

Démarrer un projet avec Cordova est assez direct si vous connaissez la ligne de commande. Il faut d’abord avoir Node.js et npm installés sur votre machine. Voici les commandes de base.

1. Installation de Cordova

La première étape consiste à installer Cordova de manière globale sur votre ordinateur. Pour ça, vous utilisez la commande npm install cordova.

$ npm install -g cordova

2. Création d’un projet

Une fois l’installation terminée, vous pouvez créer un nouveau projet. La commande cordova create myapp va générer un dossier « myapp » avec la structure de base.

$ cordova create myapp

3. Ajout d’une plateforme

Placez-vous dans le dossier de votre projet (avec `cd myapp`). Vous devez ensuite indiquer pour quelle plateforme vous voulez développer. Par exemple, pour le navigateur web, utilisez la commande cordova platform add browser.

$ cordova platform add browser

4. Lancement de l’application

Pour voir le résultat, il ne reste plus qu’à lancer l’application sur la plateforme que vous venez d’ajouter. La commande cordova run browser ouvrira votre application dans le navigateur.

$ cordova run browser

Fiche d’identité d’Apache Cordova

Pour résumer rapidement, voici les informations clés sur ce framework de développement :

  • Développeur : Fondation Apache.
  • Licence : Licence Apache v2 (donc open source).
  • Dernière version connue : 12.0.0 (datant du 22 mai 2023).
  • Langages utilisés : JavaScript, Java, Objective-C, C++, C#, Node.js.

Pour la petite histoire, Cordova ne s’est pas toujours appelé comme ça. À l’origine, c’était un projet nommé PhoneGap, créé par l’entreprise Nitobi. Quand Adobe a racheté Nitobi en 2011, le projet a été donné à la Fondation Apache et a pris le nom de Cordova.

Plateformes et fonctionnalités supportées

L’un des principaux avantages de Cordova est le grand nombre de plateformes supportées avec une seule base de code. La liste est longue et a évolué avec le temps, mais elle inclut notamment :

  • Android
  • iOS
  • Windows 8 et Windows Phone
  • Amazon Fire OS
  • BlackBerry OS
  • Firefox OS
  • Tizen
  • Ubuntu

Le point fort de Cordova, c’est de donner accès aux composants natifs du téléphone via une API JavaScript. Pas besoin d’écrire du code Java ou Objective-C pour utiliser les fonctionnalités de base du mobile. Voici quelques exemples de ce que vous pouvez contrôler :

  • L’accéléromètre, la boussole et le GPS (géolocalisation).
  • L’appareil photo.
  • Les contacts et le carnet d’adresses.
  • La gestion des fichiers sur l’appareil.
  • Le réseau et les informations de connexion.
  • Les notifications (alertes, sons, vibrations).

Pourquoi vous devriez probablement éviter Cordova aujourd’hui

Le titre de cet article est clair : malgré ses promesses, Cordova n’est plus vraiment une option à considérer pour de nouveaux projets en 2024. Il y a plusieurs raisons à ça.

Une technologie qui date

Cordova a été donné à Apache en 2011. Dans le monde du développement web et mobile, c’est presque la préhistoire. Les technologies évoluent très vite, et des approches beaucoup plus modernes et performantes ont vu le jour depuis.

Cette ancienneté se ressent dans la communauté et la documentation. On trouve souvent des exemples ou des tutoriels qui datent de plusieurs années, ce qui peut rendre le développement et le débogage compliqués.

Une maintenance complexe et des performances limitées

Le principe de Cordova est d’enfermer un site web dans une « boîte » native (une « WebView »). Cette approche a des limites de performance. L’application ne sera jamais aussi fluide ou réactive qu’une vraie application native développée spécifiquement pour Android ou iOS.

L’accès aux fonctionnalités natives passe par des « plugins », des morceaux de code qui font le pont entre le JavaScript et le système d’exploitation. La gestion de ces plugins peut vite devenir un casse-tête, surtout lors des mises à jour des OS. La maintenance d’une application Cordova est souvent plus lourde que prévu.

Des failles de sécurité historiques

L’architecture de Cordova a aussi posé des problèmes de sécurité par le passé. En 2014, une faille importante (référencée CVE-2014-3501) a été découverte par IBM. Elle permettait à des applications malveillantes de prendre le contrôle d’une application Cordova pour exécuter des actions à l’insu de l’utilisateur.

Même si cette faille est corrigée depuis longtemps, elle montre que le modèle de « WebView » peut être une porte d’entrée pour des attaques si des précautions ne sont pas prises. Pour une application qui manipule des données sensibles, ce type de risque est important à considérer.

Alors, on oublie Cordova ?

Apache Cordova a été un pionnier du développement mobile multiplateforme. Il a ouvert la voie en permettant aux développeurs web de créer des applications mobiles sans apprendre de nouveaux langages complexes. C’était une avancée importante à l’époque.

Mais aujourd’hui, son âge, ses limites de performance et la concurrence de solutions plus modernes (comme React Native, Flutter ou les Progressive Web Apps) le rendent difficile à recommander pour un nouveau projet. Le gain de temps initial promis par une seule base de code est souvent perdu dans la maintenance et la résolution de problèmes spécifiques à la plateforme. C’est une technologie intéressante à connaître pour l’histoire du web, mais pas forcément à utiliser pour construire l’avenir.

Vous pourriez également aimer...