Développement multiplateforme mobile : Apache Cordova au crible

Développement multiplateforme mobile : Apache Cordova au crible Découvrez la logique technique et le potentiel du framework open source. Des bonnes feuilles tirées de l'ouvrage "Applications mobiles avec Cordova et PhoneGap" chez Eyrolles.

cordova 2
Figure 1-2 Le site officiel d'Apache Cordova. © Groupe Eyrolles 2015

Pourquoi ?

Cordova permet donc de développer des applications pour iOS (c'est-à-dire destinées aux smartphones et tablettes et distribuées via l'App Store) avec les langages du Web. Celles-ci, contrairement aux WebApps traditionnelles, ont la particularité de s'exécuter dans un contexte différent leur offrant (du moins pour le moment) davantage de libertés. En effet, le futur d' HTML 5 laisse entrevoir de belles choses jusque-là encore compliquées, voire impossibles à réaliser dans un navigateur Internet. Citons par exemple la gestion d'une caméra pour la prise de photos et/ou de vidéos, ou encore l'accès au répertoire de l'appareil.

Là où HTML 5 n'est pas encore totalement présent, Cordova excelle en proposant immédiatement l'accès à des API (Application Programming Interface), ailleurs encore changeantes et donc relativement peu implémentées par les éditeurs de navigateurs Internet. Le framework joue même la carte de la transparence, car les contributeurs du projet s'assurent de suivre scrupuleusement les spécifications W3C (World Wide Web Consortium) et WHATWG (Web Hypertext Application Technology Working Group). Chose importante, car dans quelques années, lorsque HTML 5 sera finalisé et disponible en totalité dans nos navigateurs Internet, Cordova cessera simplement d'exister, ce qui est d'ailleurs officiellement son but à long terme.

Comment ?

Question fonctionnement, Cordova est ce que nos chers collègues anglophones appellent couramment un wrapper : un enrobage ou le fait d'utiliser de manière créative les outils mis à disposition par Apple afin d'en concevoir de nouveaux. En effet, le SDK (Software Development Kit) iOS peut facilement s'accommoder des idées les plus folles en ouvrant l'accès aux capteurs et autres fonctionnalités innovantes de l'iPhone/iPad. Et si on souhaite afficher une page HTML sur son bel écran tactile, on s'intéressera à un composant spécialement prévu pour cela : la WebView (plus ou moins une fenêtre de Mobile Safari dépourvue de barre d'URL et autres menus).

livre
Ces bonnes feuilles sont extraites du livre "Applications mobiles avec Cordova et PhoneGap" paru aux éditions Eyrolles. © Groupe Eyrolles

Sans toutefois rentrer dans le détail, Cordova exploite donc la WebView (en plein écran) en augmentant cette dernière avec certaines API HTML 5 très utiles, lesquelles se chargeront alors de communiquer avec la machine en Objective-C via JavaScript. Cordova est une sorte de traducteur JavaScript vers Objective-C (et vice versa) reposant sur les standards du Web, fonctionnant de façon extrêmement simple et quasi transparente. Une application web exécutée dans ce contexte, dialoguant avec du code natif, est nommée "application hybride".

Pour qui ?

Un des principes fondamentaux du Web est qu'il s'agit d'une plate-forme mondiale libre, ouverte et relativement facile d'accès. C'est ce qui fait son succès, ce qui explique qu'on le retrouve aujourd'hui partout sur nos smartphones et tablettes, quels que soient leur marque et système d'exploitation. Oui, chaque appareil inclut son navigateur Internet... et par conséquent sa Web-View. Peu importe que cette dernière soit écrite en Java, C++ ou Objective-C, elle aura toujours pour finalité l'affichage de fichiers HTML.

En partant de ce constat simple, l'équipe à l'origine de la création de Cordova a eu l'intelligence de ne pas s'arrêter à l'iPhone. Elle a travaillé d'arrache-pied à prendre en charge la concurrence de manière totalement transparente et cohérente. Ainsi, iOS, Android, BlackBerry, Fire OS, Ubuntu, Windows Phone, Windows 8 et Tizen sont aujourd'hui officiellement compatibles – Cordova faisant abstraction de leurs différences dans la plupart des cas, autant que faire se peut.

Remarque
Il s'agit là d'une liste de plates-formes en constante remise en cause. En effet, lorsque l'une d'entre elles n'est plus jugée comme suffisamment présente sur le marché, sa compatibilité n'est simplement plus maintenue dans les versions suivantes de Cordova.

 

En pratique

Malgré la vaste panoplie de systèmes d'exploitation pris en charge par Cordova, nous ne traiterons dans cet ouvrage que d'iOS et Android, du fait de leurs parts de marché dominantes (se référer à la figure 1-1). Pour ces deux plates-formes, l'ensemble des fonctionnalités offertes par Cordova est pleinement accessible comme le montre le tableau 1-1, tiré de la documentation officielle. Citons, par exemple, la gestion du système de fichiers, l'accès aux différents capteurs présents sur les appareils, ainsi qu'à certaines données utilisateur, mais aussi l'ajout d'événements permettant d'agir à différents moments du cycle de vie des applications et de la connexion réseau.

cordova
Tableau 1-1. Fonctionnalités offertes par Cordova pour les plates-formes prises en charge. © Groupe Eyrolles 2015

Avec sa version 3, Cordova a subi un changement d'architecture profond. Celle-ci s'articule désormais autour d'un modèle cœur/ plug-ins dans lequel chacune des API listées devient optionnelle et devra être ajoutée selon les besoins de l'application à construire. Pour l'occasion, modularité rime avec simplicité et légèreté. Toutes les API composant alors historiquement Cordova sont autant de plug-ins publiés maintenant dans un catalogue au même niveau que ceux créés par la communauté (http://plugins.cordova.io/). Nous ne détaillerons pas davantage le fonctionnement des versions antérieures, de plus amples informations à leur sujet sont disponibles dans d'autres publications, ainsi que sur la Toile.

cordova 3
Figure 1-3 L'infrastructure de Cordova pré et post-version 3 Source : PhoneGap © Groupe Eyrolles
cordova 4
Figure 1-4 Le catalogue officiel de plug-ins pour Cordova © Groupe Eyrolles

Ces bonnes feuilles sont extraites du livre "Applications mobiles avec Cordova et PhoneGap" paru aux éditions Eyrolles.
© Groupe Eyrolles 2015
.
Le JDN publie ces bonnes feuilles en deux parties. La semaine prochaine nous publierons le chapitre "PhoneGap en bref".