La croissance explosive de l'espace mobile a accéléré la recherche d'une solution multiplate-forme robuste et viable. En 2008, peu de temps après l'introduction du SDK pour iPhone et après avoir manipulé Cocoa et Objective-C, Brian LeRoux et ses collègues de Nitobi ont décidé qu'ils consacraient plus de temps à la création d'une solution multiplate-forme qu'à la création d'applications mobiles natives..
PhoneGap équipe aujourd'hui des dizaines de milliers d'applications mobiles. Pour Brian et son équipe, beaucoup de choses ont changé depuis la création de PhoneGap. En 2011, Adobe a acquis Nitobi et la source de PhoneGap a été donnée à Apache Software Foundation sous le nom de Cordova..
Sous les projecteurs d'aujourd'hui, je discute avec Brian des débuts de PhoneGap, de l'avenir du mobile et de la raison pour laquelle la destruction de PhoneGap est une bonne chose..
PhoneGap existe depuis le début de la révolution mobile et est bien connu des développeurs. Pour ceux qui ne connaissent pas Brian LeRoux ou PhoneGap, pouvez-vous nous parler de vous et de votre implication dans le projet??
PhoneGap a été créé par un petit groupe de personnes travaillant pour la plupart chez Nitobi, au Canada à l’époque..
Les premiers commits ont été débarqués par Brock Whitten et Rob Ellis pour iOS. De nos jours, iOS est complètement le domaine du prolifique Shazron Abdulla. Joe Bowser a piraté le très tôt Android et continue à le maintenir à ce jour.
Dave Johnson a ajouté divers bits BlackBerry, maintenant largement gérés par BlackBerry eux-mêmes avec l'aide de Lorin Beer. Jesse Macfadyen a coupé les incarnations de Windows Phone en travaillant étroitement avec Microsoft.
Michael Brooks a bousculé la documentation et une grande partie de la CLI (interface de ligne de commande) et des outils de test avec Fil Maj. Anis Kadri a dirigé la plupart des processus d’outillage et de découverte. Steve Gill a été responsable des publications et a contribué à l'essentiel de l'outillage connexe..
Herm Wong a démarré Firefox OS et maintenant notre nouveau projet d'interface graphique. L'identité de marque a commencé avec Yohei Shimomae et a depuis été reprise par Joni Rustulka. Google et IBM ont également de nombreux contributeurs.
Une histoire de création ordonnée avec un seul pirate informatique au sous-sol est une sorte de fantaisie que notre industrie aime mais qui est rarement le cas. Les logiciels sont toujours un effort collectif et chaque personne qui contribue mérite d'être reconnue. Il me manque une tonne de contributeurs canadiens ici, mais vous avez l’idée.
Pour moi, j'ai travaillé chez Nitobi, j'ai incarné de nombreux codes dans PhoneGap, mais je me suis principalement concentré sur la construction de la culture, de la philosophie et des objectifs initiaux du projet - des éléments d'une importance cruciale pour la communication et l'orientation de la communauté..
Les tests, l’outillage et l’intégration ont également été mes premières préoccupations. Finalement, je me suis plus concentré sur le développement de l'engagement au-delà de Nitobi, ce qui a abouti au don de la source à Apache sous le nom de Cordova..
PhoneGap ayant près de six ans, la plupart des gens en ont au moins entendu parler. Pour ceux qui ne connaissent pas PhoneGap, pouvez-vous dire quel problème PhoneGap essaie de résoudre?
PhoneGap permet de créer des applications mobiles utilisant HTML, CSS et JavaScript. Nous prenons en charge tous les principaux systèmes d'exploitation mobiles pour la création et la distribution dans des magasins d'applications natifs. Mais nous sommes avant tout des développeurs Web et PhoneGap a pour objectif de démontrer que le Web est une plate-forme de développement de premier ordre. Nous voulons créer des applications Web, pas des pièges propriétaires.
En fin de compte, PhoneGap vous offre un navigateur Web plein écran de fantaisie et un modèle d’extensibilité pour accéder aux fonctionnalités de la plate-forme native via une simple interface de plug-in. Le modèle de plug-in simplifie de manière simple l’exposition de tout élément du système d’exploitation à la vue Web. De cette manière, les aval peuvent rapidement prototyper de nouvelles fonctionnalités Web et les développeurs d’applications ne sont pas limités par le sandbox de vue Web traditionnel..
Ces dernières années, l’essentiel de nos efforts a été consacré à la création d’outils permettant d’abstraire les flux de travail de développement mobile natifs communs. Compiler, émuler, journaliser, installer des plugins, etc..
À quoi ressemblaient les débuts de PhoneGap? Quand avez-vous réalisé que PhoneGap était une solution à un problème rencontré par de nombreuses entreprises et développeurs??
Les premiers jours étaient ridicules et amusants. PhoneGap était principalement un projet parallèle et les premiers développeurs de base ont souvent piraté et philosophe à l’Alibi Room, un célèbre bar à bière de Vancouver, après les heures normales de travail..
Lentement, alors que le mobile commençait son ascension fulgurante, de nombreux autres développeurs sont arrivés à la mêlée, attirés par les conceptions philosophiques que nous partagions..
C’était et reste un groupe qui en a marre des plates-formes propriétaires, des systèmes d’exploitation en évolution et des environnements de développement figés. Fatigués par les plates-formes logicielles qui réclament "une solution unique", mais qui ne mettent à jour "de cette manière" que tous les six mois et par la suite, la déconseillent, si elles ne disparaissent pas complètement.
Au fil des années, la plate-forme Web s’est lentement améliorée et les applications qui la ciblaient fonctionnaient toujours. Nous ne craignions plus le brillant matériel de marketing appelé «directives de conception d'interface humaine»..
Le Web n'a jamais subi de menace, mais nous avons trouvé un hack qui pourrait amener la bataille aux plateformes mêmes qui le menacent. Le projet a toujours été open source, a d’abord respecté le Web et a été conçu pour démontrer les fonctionnalités que nous estimons être la plate-forme nécessaire pour rester compétitifs par rapport aux solutions de rechange propriétaires. Cela a toujours été un groupe de pirates informatiques, mais nous veillons à ne pas nous prendre trop au sérieux.
Il y a quelques années, vous avez dit que PhoneGap "n'est pas un marteau d'or" et que PhoneGap n'est pas la solution pour toutes les applications mobiles. Est-ce toujours vrai ou nous rapprochons-nous d'un Web mobile aussi puissant que l'expérience native??
Le spectre des applications potentielles ne cesse de s'élargir à mesure que les navigateurs et les appareils sur lesquels ils fonctionnent s'améliorent. Je ne recommanderais jamais PhoneGap comme la solution ultime. Il existe des considérations techniques telles que les avantages liés aux plateformes natives et des préoccupations plus légères, telles que les facteurs opérationnels, les compétences des employés, l'investissement de contenu existant, les licences, le recours à des fournisseurs de plate-forme tiers et même les relations avec les partenaires..
Les choix technologiques apportent toujours des compromis et investir dans des technologies Web telles que PhoneGap n'est pas différent.
Le véritable défi auquel sont confrontés les développeurs, et en particulier dans l'entreprise, est de reconnaître que le développement d'applications mobiles est comparable au développement de logiciels standard. Ce n'est pas juste un pic marketing à un moment donné. Il y a un cycle de vie complet à considérer; conception, développement, tests, analyses et surveillance.
Le développement mobile nécessite une maintenance et des ressources continues. Les pièces uniques d'un cabinet de conseil devront être mises à jour lorsqu'une nouvelle version d'iOS ou d'Android sera disponible. Le service marketing doit comprendre le contenu en cours d'exécution et être en mesure de publier rapidement les modifications apportées au contenu non performant. Le service informatique a besoin d'un rapport d'incident d'exécution et d'un accès pour l'infrastructure de notification push.
Le jeu plus long qui nécessite des ressources stratégiques délibérées vient juste d’être reconnu, de nombreuses organisations ne faisant que commencer à peine à découvrir qu’elles sont, au moins en partie, en train de devenir elles-mêmes des éditeurs de logiciels. Un investissement stratégique dans une technologie reposant sur un écosystème propriétaire tiers est un risque commercial. PhoneGap peut aider à atténuer ce risque. En fin de compte, vous ne perdrez jamais un pari sur le Web.
L’acquisition de Nitobi par Adobe a constitué une étape importante pour PhoneGap, mais Apache Cordova était probablement encore plus importante. Comment Apache Cordova a-t-il changé la plate-forme??
L'acquisition de Nitobi par Adobe était absolument importante. Nous avons été libérés de tout travail de conseil fou pour nous concentrer uniquement sur PhoneGap et il ne fait aucun doute que la plate-forme en a énormément profité. Le don de la source PhoneGap à Apache en tant que Cordova est tout aussi important à long terme.
Travailler avec Apache a apporté un nouveau niveau de discipline au projet. Notre processus de libération est beaucoup plus formalisé et, même s'il a été difficile de maintenir notre cadence, notre communauté gagne le terrain sûr et légal pour lequel Apache est célèbre.
Ce territoire neutre est un environnement propice à la collaboration sans souci des personnes employées par différentes organisations. Depuis que nous avons rejoint Apache, nous avons accueilli des auteurs d’IBM, BlackBerry, Microsoft, Google, Intel, HP, LG, Samsung, etc..
À la suite de cela, nous avons vu de nombreuses nouvelles distributions en aval de Cordova. Ma préférence va à Adobe PhoneGap, mais les développeurs peuvent choisir de cibler BlackBerry Webworks, IBM Worklight, SDK SAP, Telerik, Intel XDK ou Google Mobile Chrome Apps..
Certains n'utilisent que la vanille Apache Cordova et créent leur propre aval. J'aime cette diversité. Tout cela indique un écosystème dynamique et sain sur lequel notre communauté de développeurs peut compter. Nous parcourons rapidement, corrigeons rapidement les bugs, ajoutons de nouvelles fonctionnalités sur une cadence régulière et bénéficions d'un processus de contribution très bien compris, accessible à tous..
Apache a une réputation bien méritée en matière de politique et de bureaucratie, mais l’améliorer fait également partie de notre travail et travailler avec ASF (Apache Software Foundation) a finalement été le bon chemin pour notre communauté à long terme. Je suis très fier de ce que nous avons accompli avec la FSA.
PhoneGap est une excellente plateforme pour développer des applications mobiles. Le déploiement reste lourd sur de nombreuses plates-formes, mais vous avez essayé de résoudre ce problème avec PhoneGap / Build. PhoneGap / Build sonne comme un marteau d'or pour les développeurs qui recherchent une solution multi-plateforme. Pouvez-vous nous dire ce que le service fait et quel problème il résout?
PhoneGap Build est un compilateur hébergé dans Adobe Creative Cloud. En utilisant PhoneGap / Build, vous pouvez cibler n’importe quel système d’exploitation mobile que nous supportons depuis n’importe quel navigateur Web. Vous pouvez créer une application iOS à partir d'un netbook ou même de votre propre téléphone (méta).
Au départ, nous avons pensé que cela pourrait être utile pour l'intégration continue et les tests. C'est devenu un utilitaire complet pour le processus très discret de compilation d'une application et de donner une URL à l'artefact résultant. Il ne fait que cela et il le fait plutôt bien. Nous avons vu beaucoup de gens utiliser PhoneGap / Build comme API ou comme compilateur..
Vous avez dit un jour que vous pensiez que l'avenir de PhoneGap réside dans sa propre destruction. Pouvez-vous expliquer ce que vous entendez par là?
Oui, le but ultime de PhoneGap est de cesser d’exister. Nous ne voulons pas écrire d'applications natives. Nous sommes sur la voie du développement de clients exclusifs et savons que cela conduit à un verrouillage des écosystèmes risqué.
Nous voulons créer des applications Web et PhoneGap a toujours été une solution provisoire jusqu'à ce que les navigateurs, ou peut-être les applications Web installables, soient des alternatives capables. Je pense que nous sommes très proches de cette réalité aujourd'hui. Pour de nombreuses applications, le Web d'abord est absolument approprié.
Pour que les applications Web mobiles réussissent avec l'omniprésence que nous voyons sur le bureau, il est utile de montrer les domaines dans lesquels le Web doit être amélioré. L’architecture du plug-in PhoneGap est une surface très lisse permettant de créer des prototypes discrets afin d’exposer de nouvelles fonctionnalités à la surface Web traditionnelle. Cette philosophie subtile nous a éclairés dans la direction à suivre, en mettant en œuvre des normes, pollyfills, en collaborant avec le W3C sur la conception des API et en apportant des préoccupations aux éditeurs de navigateurs qui conduisent à de nouvelles fonctionnalités de plate-forme..
La reconnaissance ouverte de la disparition ultime pourrait être un événement tragique ou une compréhension stratégique contre laquelle planifier. Pour témoigner de notre propre perte, PhoneGap doit faire tout ce qui est en son pouvoir pour voir la plate-forme Web gagnée..
Quels sont certains des problèmes que nous devons encore résoudre sur le Web? En d'autres termes, à quel point sommes-nous proches d'un site Web mobile offrant une expérience comparable à celle des applications natives??
25 ans plus tard, il est difficile de critiquer la plateforme Web. Basquer le Web, sur le Web, est une tradition de longue date du métier de webmaster..
La catégorie la plus génératrice de revenus dans l'App Store est constituée de jeux. Alors réfléchissons à ce qu’il faut pour être un grand jeu. Dans l'ensemble, l'audio est en désordre, mais l'API Web Audio est géniale. WebRTC, ou peu importe comment nous l'appelons, est très prometteur pour rendre plus réelles les applications en temps réel..
Ensuite, il y a un tas de tuyauterie qui n'a pas encore atterri omniprésente, comme le plein écran et le contrôleur de jeu. Lorsque tout cela est disponible, cela va bouleverser les jeux. Des API de données intenses, telles que Web Audio, WebRTC et WebGL, vont nous aider à identifier les limites des performances d'exécution de JavaScript et toutes les premières indications sont extrêmement positives..
La mise en page devient assez bonne. La Flexbox est géniale et j'ai de grands espoirs pour CSS Grids. La dernière version de Firefox (28) corrige les derniers bogues avec Flexbox. Je ne sais pas quand CSS Grids atterrira, mais je suis patiente. Les requêtes multimédia, parfois appelées Responsive Web Design, sont utiles. Je souhaite un modèle de capacité plus robuste nous permettant de rendre les interfaces adaptatives de manière optimale..
La plus grande opportunité est vraiment de déchiffrer l'histoire hors ligne - probablement mieux qualifiée de "occasionnellement connectée". Les applications Web installées, telles que les applications PhoneGap, sont intrinsèquement hors connexion, mais un modèle de permission complète reste à définir. Mozilla, Google et le W3C y travaillent.
Beaucoup de nos lecteurs ont l'ambition de développer pour le mobile. Si tu commençais aujourd'hui, par où commencerais-tu? Que conseilleriez-vous vous donner?
Mobile n'est pas très différent de la programmation client régulière. Le conseil classique est de tester sur de vrais appareils et j'encourage les gens à apprendre les plates-formes natives, mais ne pas trop s'y attacher. Un bon exemple serait la mise à jour iOS 6 à iOS 7. Une application Web régulière ou bien conçue PhoneGap ou bien conçue n’était pas fragile à cette mise à jour.
Sinon, toute la sagesse habituelle du programmeur s'applique. Soyez ambitieux dans votre portée mais discret dans vos implémentations. Créez beaucoup de branches et soyez prêt à jeter la majeure partie de votre travail. Vous n'êtes pas votre code, alors refactorisez-vous impitoyablement et recherchez des retours critiques.
Les petits modules et prototypes sont plus faciles à raisonner, à corriger, à tester et à valider. Ne vous laissez pas prendre par le cadre et la mode bibliothèque. Concentrez-vous sur votre problème et parcourez-le furieusement et sans passion. Écrivez des tests et simplifiez la tâche à un nouveau venu dans la base de code pour exécuter les tests eux-mêmes.
Enfin, soyez super excellent avec vos collègues. Le Web a une longue mémoire, cette industrie est plus petite qu'il n'y paraissait et personne ne veut travailler avec un connard. Personne n'a jamais pensé qu'une personne impolie était intelligente. Flaming est juste un comportement peu sûr et professionnellement immature. La programmation est assez difficile, nous pouvons tous apprendre les uns des autres et opter pour une expérience agréable..
J'aimerais remercier Brian pour son temps et pour avoir partagé ses idées et ses idées avec Tuts +. Vous pouvez entendre Brian parler au Future Insights Live 2014 à Las Vegas en juin. La conférence propose une liste impressionnante d’orateurs couvrant les meilleurs en matière de conception, de développement et de téléphonie Web. Utilisez le code promo TUTS pour obtenir 15% de réduction.