Applications hybrides : Phonegap et Cordova

Android, iOS, Windows Phone : trois technologies et autant de développements fondamentalement différents pour qui voudrait rendre son application compatible sur les trois plates-formes. Dès lors, la tentation du développement multi plate-forme est grande... d’autant qu’elle propose souvent au développeur de faire l’économie de l’apprentissage d’un nouveau langage. La solution miracle existerait-elle donc ?

Cordova (le projet open-source derrière Phonegap) fonctionne sur un principe simple : tout le code est réalisé en HTML5/CSS3/JS. Ce code est ensuite compilé au sein d’une webview (composant présent dans tous les sdk utilisant le moteur de rendu du navigateur web du smartphone) qui contient donc l’ensemble de l’application telle que le développeur l’a codée.

Reste que les webviews ont les limites du web et qu’elles ne permettent donc pas d’accéder aux fonctionnalités “natives” du téléphone (caméra, accéléromètre, boussole...). C’est là que Cordova prend tout son sens : ce beau projet propose en effet un ensemble de “bridges” rendant ces fonctionnalités natives disponibles au sein d’une simple API Javascript. Cordova a quand même un certain nombre de défauts liés à sa conception. Premièrement, le fait de passer par une webview ajoute un niveau d’abstraction entre l’application et le système. Ainsi, même si les smartphones modernes optimisent plutôt bien l’interprétation des langages web, vous perdrez en performances. Entendons-nous bien : cela mais n’est pas forcément bloquant, mais si votre application doit comporter, par exemple, des animations ou des effets de transitions ultra-fluides, Cordova montrera ses limites.

Le bon projet Cordova est donc celui qui n’est pas trop exigeant en matière de performances et qui vous permettra de réaliser une application multi-plateforme en ne nécessitant que peu de plugins.