Les applications mobiles font fureur et développer des applications mobiles utilisant les technologies du web n'a jamais été aussi facile grâce à PhoneGap, avec simplement HTML, CSS, et JavaScript. Étant donné que ces applications sont basées sur des standards du web, elles peuvent être utilisées sur un grand nombre de plateformes comme iOS, Android, Windows Phone et d'autres encore. Brian LeRoux travaille sur PhoneGap depuis son commencement dans la petite startup Nitobi et jusqu'au projet repris aujourd'hui par Adobe. Il agit en tant que Vice Président chez Apache pour la fondation open source PhoneGap, aussi connue sous le nom de Apache Cordova.
Adobe a publié la version 3.0 de PhoneGap et nous avons eu la chance de pouvoir discuter avec Brian LeRoux des nouveautés de cette version 3.
InfoQ : Il va y avoir plein de nouvelles fonctionnalités dans PhoneGap 3 - vous êtes-vous concentrés sur un point en particulier pour cette version ? Quelle est la fonctionnalité de PhoneGap 3 que les développeurs vont le plus apprécier ?
Brian LeRoux : PhoneGap 3.0 avait un thème général "d'ergonomie des développements". Cela s'étendait de l'expérience de travail et de l'API à l'architecture globale du projet.
- Plein de nouveaux outils en ligne de commande
- Plus de plateformes supportées
- De nouvelles APIs
- Architecture et outillage pour Plug-in
Nous avons passé beaucoup de temps à observer et discuter avec notre communauté de développeurs, et les changements de contextes entre les plateformes posaient encore problème. Nous avons donc décidé d'unifier toute la partie commune du travail entre les plateformes (par exemple la compilation, la journalisation et l'émulation) en un groupe commun de scripts. Maintenant, si vous êtes sur un projet PhoneGap/iOS, vous aurez les mêmes commandes de compilation que pour PhoneGap/Android. Nous sommes allés un cran plus loin et avons unifié toutes les plateformes dans un nouvel outil CLI global que vous pouvez installer via npm avec la commande
npm install phonegap -g
. Le CLI PhoneGap est simplement une extension du CLI Cordova. La seule vraie différence entre Apache Cordova et PhoneGap est que ce dernier est hébergé sur notre service Creative Cloud, Adobe PhoneGap/Build. Vous pouvez utiliser l'un ou l'autre, et beaucoup le font. C'est vraiment excellent de pouvoir lancer un build depuis n'importe quel navigateur web, indépendamment de votre système d'exploitation. C'est aussi top de savoir que lorsque l'on souhaite mettre les mains dans le cambouis avec du code natif, on peut le faire. Nous ne sommes pas là pour vous dire comment construire vos applications. Nous voulons juste vous faciliter la tâche via les technologies web. Nous avons également ajouté de nouvelles plateformes, avec Firefox OS et Ubuntu à l'horizon, ainsi que quelques APIs supplémentaires pour faire face à la mondialisation et au développement des navigateurs intra-application. Enfin, nous avons apporté d'énormes améliorations à l'architecture des plug-ins et à tout l'outillage associé. Vous pouvez maintenant facilement installer, supprimer ou découvrir des plug-ins grâce à l'outil en ligne de commande mentionné auparavant.
InfoQ : Parfois, lors des changements de version majeurs, l'effort de migration pour les développeurs est vraiment douloureux. Sera-t-il difficile de passer à PhoneGap 3 pour des projets existants ? Combien de temps faudra-t-il pour passer à cette nouvelle version ?
Brian : Le gros changement de PhoneGap 3 est que nous traitons maintenant le www comme la première priorité et les plateformes natives plus comme de simples artefacts. Nous n'en sommes pas encore à considérer le code natif généré comme jetable ; il est toujours nécessaire de conserver ces sources car parfois il faut faire des ajustements pour certains cas particuliers, mais nous sommes très proches d'en faire une réalité. PhoneGap 3 nous rapproche un peu plus de ce but. Ça ne devrait pas être compliqué de porter un projet natif PhoneGap 2 vers une structure de projet PhoneGap 3 si vous avez uniquement utilisé du code web de style vanilla. Copiez simplement le www et ça sera bon. Si vous avez amélioré votre projet 2.x avec des plug-ins natifs, il faudra un peu de temps pour que nous portions ces plug-ins de la communauté. Nous allons garder la 2.9 pendant un bon moment et se concentrer à travailler avec la communauté pour adapter les plug-ins à cette nouvelle architecture et aux outils. Nous allons continuer à suivre les corrections de bugs de la 2.9 pendant encore au moins 6 mois après la publication de la version 3 pour s'assurer que la communauté a un support suffisant.
InfoQ : iOS 7 a été mis à disposition de la communauté en juin et sera disponible sur les téléphones à l'automne. Quand sera supportée cette version d'iOS ? Y a-t-il des défis particuliers liés aux changements de design imposés par Apple ?
Brian : Bien que je ne puisse pas commenter sur la date de sortie de iOS 7, je peux vous assurer que PhoneGap sera prêt lorsqu'iOS 7 sortira. Nous participons à la beta, et les compatibilités ascendantes et descendantes sont aussi importantes pour nous. C'est un très bon exemple de victoire des technologies web. Lorsqu'iOS 7 arrivera, votre code web étant portable, vous tirerez le maximum de la dernière version de Safari Mobile et de ces améliorations de performances. Chaque nouvelle version du navigateur d'iOS s'améliore et améliore PhoneGap par la même occasion.
InfoQ : Quel est ta recommandation pour être bien équipé pour PhoneGap ? Comment un développeur peut-il s'équiper efficacement pour développer des applications multi-plateformes ?
Brian : Nous essayons de ne pas trop nous impliquer dans les affaires du développement web mais nous préférons plutôt mettre à disposition nos outils pour les différents systèmes d'exploitation. Ceci étant dit, je travaille sur un nouveau projet chez Adobe, qui s'appelle Topcoat et qui permet de développer des applications uniquement en CSS, proprement et rapidement. Cela montre à nouveau la puissance du web. Vous pouvez utiliser l'éditeur que vous voulez. Il se trouve que j'utilise VIM mais je me retrouve de plus en plus à bidouiller avec Brackets récemment. PhoneGap s'en moque : il n'y a pas d'IDE imposé pour l'utiliser, du coup un développeur n'est pas forcé d'utiliser de nouveaux outils. N'importe quel éditeur de texte convient. Les développeurs et même les designers sont de plus en plus avertis maintenant. Un bon exemple de processus de développement/design moderne est sans doute le très bon livre de Stephen Hayes : Responsive Design Workflow. La nouvelle génération de développeurs a appris HTML, CSS et JavaScript au lycée. Ils n'ont pas peur de la ligne de commande et créent volontiers un projet à partir d'outils open source. Ils itèrent. Ils utilisent Github. Nous adorons cette diversité et nous l'embrassons avec notre propre outillage pour PhoneGap. Tout est totalement modulaire et peut être agencé dans de plus gros et meilleurs projets. Par exemple, les utilitaires de la ligne de commande PhoneGap sont des extensions des utilitaires Cordova en ligne de commande sous-jacente. Nous voyons la communauté embrasser cette opportunité avec des projets comme Yeoman, les plug-ins Eclipse, et tant d'autres. Pour revenir à la question initiale sur l'efficacité du développement, je crois que la meilleure approche est de commencer petit, de tester sur de vrais appareils et de n'intégrer du code tiers que lorsque vous êtes vraiment sûr d'en avoir besoin et pas en prévention d'un potentiel besoin futur. Les terminaux mobiles sont réputés pour leurs performances moyennes en web ou natif, donc assurez-vous que chaque ligne de code compte.
InfoQ : Y a-t-il certains types d'applications qui se prêtent mieux à PhoneGap que d'autres ? Pourquoi ?
Brian : Ça devient un peu plus difficile de répondre d'année en année. J'avais coutume de dire que les jeux n'étaient pas vraiment adaptés aux technologies du web, mais ce n'est clairement plus le cas. Évidemment, les jeux de tir à la première personne (FPS) et autres jeux 3D aux effets graphiques avancés ne sont pas encore au goût du jour, mais à peu près tout le reste est possible. Les applications PhoneGap brillent lorsque le contenu est mis en avant, et c'est surtout plaisant lorsque vous pouvez réutiliser des ressources d'autres projets web. Ça ne prend que quelques secondes pour générer un projet PhoneGap donc je recommanderais aux développeurs web qui nous lisent d'essayer. Si ça marche pour vous tant mieux, sinon, ce n'est pas grave. Dans tous les cas, le plus important est que vous ayez eu votre propre expérience, c'est le meilleur moyen pour comprendre l'adéquation de n'importe quelle technologie à une situation.
InfoQ : À quand remonte la dernière fois où tu as vu une application réalisée avec PhoneGap et pensé "Wow, je n’aurais jamais cru que c'était possible" ?
Brian : Difficile à dire. Je crois que la première fois que j'ai vu les Shaders CSS en démo chez Adobe est un bon exemple. La fonctionnalité est encore naissante et pas réellement utilisable par les développeurs pour le moment, mais elle arrive dans les navigateurs et représente certainement une étape importante dans notre capacité à créer de magnifiques animations et transitions dans nos designs.
Brian LeRoux est le chef de produit principal de PhoneGap et topcoat chez Adobe, ainsi que Vice Président de Apache Cordova. Il est aussi un membre passif de la Node Firm, un hacker web mobile, amateur de bière avec un problème pour le JavaScript qu'il documente comme beaucoup d'autres sur wtfjs pour le plaisir. Vous pouvez suivre Brian sur son site internet.