Développement d'applications mobiles après PhoneGap et Cordova

Todd Anglin est vice-président de la stratégie produit et des relations avec les développeurs chez Progress.

Depuis près d'une décennie, PhoneGap offre aux développeurs Web une voie à faible friction pour créer des applications mobiles qui ont accès aux capacités natives des appareils. PhoneGap permet à de nombreux développeurs de créer des applications pour iOS et Android (et même Windows Phone et BlackBerry, pendant un certain temps) en utilisant des compétences et des bibliothèques JavaScript qu'ils connaissent et aiment déjà. Cette combinaison de compétences Web et d'accès natif aux appareils (communément appelé «hybride») est devenue l'une des principales approches du développement d'applications mobiles.

Maintenant, alors que le travail sur l'évolution de PhoneGap (et le projet open source Apache Cordova associé) ralentit, quelle est la prochaine étape du développement mobile hybride?

De toute évidence, en tant que projet open source, Apache Cordova ne disparaîtra pas de sitôt. De nombreuses entreprises investissent massivement dans Cordova, et la communauté de Cordova continue de combler les lacunes alors que les entreprises engagées vont et viennent.

Mais PhoneGap était un projet créé avec l'intention explicite de devenir à terme obsolète, et ce moment est peut-être sur nous.

Au cours des 10 dernières années, deux options sans doute supérieures ont émergé, prêtes à remplacer PhoneGap et «hybrid 1.0». Ce sont des applications Web progressives et des applications natives basées sur JavaScript.

Applications Web progressives

PhoneGap a toujours été conçu pour aider les développeurs Web à faire plus sur les appareils mobiles lorsqu'ils atteignent les limites des navigateurs Web mobiles. PhoneGap réutilise tout ce qui provient du Web - HTML, CSS, JavaScript - et s'appuie sur des plugins écrits en code natif (Objective-C, Swift, Java) pour accéder aux fonctionnalités natives spécifiques de l'appareil via JavaScript. Au fil du temps, cela s'est avéré être à la fois une bénédiction et une malédiction. La courbe d'apprentissage est très faible, mais les navigateurs Web intégrés dans les applications PhoneGap ont souvent du mal avec les performances (non grâce à Apple et, pendant longtemps, à la vue Web par défaut d'Android). Pourtant, PhoneGap était une solution fonctionnelle qui produisait des résultats «assez bons» pour beaucoup.

Pendant ce temps, les normes Web ont continué d'évoluer et, au cours des trois à quatre dernières années, les efforts visant à améliorer les normes Web nécessaires à la création d'applications mobiles plus performantes et prêtes hors ligne ont été catalysés sous le terme «applications Web progressives».

Avec des applications Web progressives, la plate-forme Web fait un autre pas de géant. Désormais, les applications Web ont un contrôle total sur la pile réseau, ce qui permet d'effectuer une mise en cache avancée et des opérations hors ligne. Il existe également de nouvelles API qui permettent aux applications Web d'effectuer d'autres tâches souvent associées aux applications mobiles natives, comme le lancement avec un écran de démarrage, l'envoi de notifications push ou la demande d'informations de paiement aux utilisateurs. Ajoutez ceci à toutes les autres API «HTML5» qui ont atterri dans les navigateurs (comme l'accès aux accéléromètres, aux caméras, etc.) et vous disposez d'une plate-forme Web très performante pour de nombreux types d'applications.

Toutes ces fonctionnalités auraient nécessité une application native lors de la création de PhoneGap, mais maintenant les navigateurs ont rattrapé leur retard. Nous pouvons enlever les roues d'entraînement hybrides.

Pourtant, il reste des limites sur le Web. C'est juste la nature de la plate-forme basée sur des normes et qui évolue lentement. Les applications Web progressives représentent un pas de géant, mais elles ne remplacent pas parfaitement toutes les applications. Alors, que doivent faire les développeurs Web après l'hybride s'ils ont toujours besoin d'un accès complet aux API des appareils natifs? Entrez dans les applications natives basées sur JavaScript.

Applications natives pilotées par JavaScript

Il y a environ cinq ans, plusieurs entreprises ont commencé à essayer de trouver une solution aux problèmes de performances fréquents qui affectaient les applications mobiles hybrides. L'objectif: créer des frameworks capables de fournir des performances et une richesse d'interface "véritablement natives" tout en restant multiplateformes et familiers aux développeurs Web. De ce travail, deux options populaires ont émergé: React Native (de Facebook) et NativeScript (de Progress).

Ces nouveaux frameworks permettent aux développeurs de continuer à réutiliser leurs compétences Web, mais au lieu de simplement envelopper un navigateur Web dans un shell d'application natif (comme le fait PhoneGap), ces nouvelles approches produisent une interface utilisateur native. Il en résulte des applications mobiles qui ressemblent et fonctionnent davantage comme des applications natives «brutes» à plate-forme unique, tout en gagnant en productivité multiplateforme.

Il y a eu quelques noms pour décrire cette approche: «hybride 2.0», «hybride natif» et «natif multiplateforme», entre autres. Forrester a introduit le terme «applications natives pilotées par JavaScript» et, même s'il ne sort pas vraiment de la langue, il s'agit au moins d'un nom précis et descriptif.

Avec les frameworks d'applications natives pilotés par JavaScript, les développeurs Web ont la plupart de ce qu'ils ont aimé de PhoneGap, mais avec encore plus de puissance et de performances. Par exemple, NativeScript, qui est profondément intégré à Angular et Vue, donne aux développeurs un accès complet à toutes les API natives via JavaScript. Chacun d'entre eux. Si cela peut être fait dans une application native, cela peut être fait dans NativeScript, et les modules multiplateformes permettent à la plupart des choses d'être codées une fois et de fonctionner à la fois sur iOS et Android. C'est comme les plugins PhoneGap sur les stéroïdes.

React Native et NativeScript sont tous deux des projets open source florissants, et tous deux sont prêts à être l'évolution naturelle de «l'hybride 1.0» pour les cas où les applications Web progressives ne correspondent pas à la facture.

Lequel choisissez-vous?

Bien que PhoneGap ne soit pas parti, il est difficile d'imaginer pourquoi un nouveau projet commencerait avec PhoneGap aujourd'hui alors que des options telles que des applications Web progressives et des applications natives basées sur JavaScript existent. Les deux options représentent des chemins construits pour l'avenir et sont relativement simples à adopter pour les développeurs Web déjà familiarisés avec le développement d'applications hybrides.

Le choix entre les options doit également être simple:

  1. Si votre application n'a pas besoin de beaucoup d'accès aux API de l'appareil, n'a pas besoin d'être dans les magasins d'applications et peut vivre avec des limites supplémentaires sur iOS (pour le moment), créez une application Web progressive.
  2. Si les exigences de votre application dépassent les limites des applications Web progressives, choisissez l'une des plates-formes d'applications natives basées sur JavaScript:
    1. Si vous êtes un magasin React, choisissez React Native.
    2. Si vous êtes un magasin Angular ou Vue, choisissez NativeScript. 

De nombreuses entreprises qui conçoivent ces frameworks open source sont très disposées à vous aider et la plupart offrent des conseils techniques pour migrer de PhoneGap vers leur framework. Si vous recherchez un endroit pour commencer votre parcours de migration, consulter un expert est toujours une bonne idée.

Et si vous êtes bloqué ou si vous préférez simplement parler à un expert tiers, il existe un certain nombre de ressources intéressantes pour la communauté des développeurs - le choix évident et le plus populaire est GitHub. Cependant, de nombreux autres forums ont été créés pour aider les développeurs à migrer de PhoneGap et hybrides vers des applications Web progressives depuis un certain temps, et ils offrent d'excellents conseils.

En fin de compte, PhoneGap a été à la hauteur de son nom. Il a aidé les développeurs Web à combler le «fossé» du développement d'applications mobiles pendant près d'une décennie. C'est une course impressionnante par n'importe quel standard. Il est maintenant temps que les applications Web progressives et les frameworks d'applications natives pilotés par JavaScript prennent le relais et dirigent les développeurs vers l'avenir.

Hybrid (1.0) est mort. Vive l'hybride (2.0).

Todd Anglin est vice-président de la stratégie produit et des relations avec les développeurs chez Progress. 

-

New Tech Forum offre un lieu pour explorer et discuter des technologies d'entreprise émergentes avec une profondeur et une ampleur sans précédent. La sélection est subjective, basée sur notre choix des technologies que nous pensons importantes et qui intéressent le plus les lecteurs. n'accepte pas les supports marketing pour la publication et se réserve le droit de modifier tout le contenu fourni. Envoyez toutes vos demandes à  [email protected] .