Dev d’appli Android : du natif ou Cordova ?

Pour mieux apprécier une nouvelle technologie il est parfois nécessaire d’apprendre ce qui se faisait avant. Dans cette optique, et après avoir développé l’application mobile Cordova/PhoneGap Foot Rank pour iOS et Android, nous avons suivi une formation sur le développement d’applis natives Android 5. Nous partageons maintenant avec vous nos impressions sur ces deux technos : natif VS Cordova.

L’appli Foot Rank, basée sur Cordova et News’Innov

FootRank est une appli mobile tirant parti du service News’Innov (via une API REST) pour vous proposer les dernières actus de l’Euro 2016 : articles pertinents, mais aussi popularité des joueurs au fil du temps.

Conçue en seulement 2 semaines par une équipe encore novice en développement mobile, Foot Rank repose sur Cordova et Ionic. Notre choix technique s’explique ainsi :

  • Cordova : pour développer en HTML/JavaScript et cibler les principales plateformes (iOS et Android)
  • Ionic : pour utiliser AngularJS, technologie parfaitement maitrisée par notre équipe

La formation Android 5

5 jours de formation durant lesquels une équipe développement de ContentSide a expérimenté la conception d’applications natives Android avec Android Studio 2, Java 8 et Gradle. Nous sommes partis des bases (layouts, fragments, permissions, les émulateurs…) jusqu’à des concepts plus avancés tels que les services ou encore l’intégration de GoogleMaps.

Notre ressenti durant cette semaine de formation

Développer des applis natives nous a permis de découvrir combien cette pratique est « old school » et bas-niveau. Certaines fonctionnalités simples au premier abord demandent un investissement important aux développeurs. A titre d’exemple, il n’est pas possible d’afficher une simple liste : sans le concept de RecyclerView, le scrolling sera mal géré et votre liste désordonnée.

L’avantage le plus évident des applis natives réside sans doute dans sa gestion des appareils. La gestion de l’orientation portrait/paysage et de la résolution se révèle très puissante et intuitive, là où Cordova nous oblige à penser « responsive », à la manière d’un site web.

L’autre avantage concerne biensûr les performances. Développer une appli native donne davantage de contrôle sur la réactivité et la gestion de la batterie qu’une appli Cordova. D’ailleurs, le principal défaut de Cordova, en particulier avec Ionic, réside dans les faibles performances graphiques : Ionic reposant sur AngularJS, les capacités limitées d’un smartphone sont facilement mises à rude épreuve, provoquant saccadements et ralentissements (bien que Ionic 2 promette de faire mieux grâce à AngularJS 2).

Aussi, la quantité de code à générer semble bien plus importante que dans une appli Cordova, même si des outils tels que Android Annotations (dans le même esprit que Project Lombok) nous simplifient grandement la vie.

En comparaison, Cordova apporte une couche d’abstraction importante et simplifie l’utilisation de nombreux concepts. Nous gardons cependant à l’esprit que si Cordova ne supporte pas d’office toutes les fonctionnalités natives, cela peut être résolu en développant des plugins.

Faut-il développer des applications natives ?

Le couple Cordova / Ionic peut finalement donner pleinement satisfaction s’il s’agit d’applications simples consommant une API REST, et avec sûrement des technologies que vous maitrisez (HTML/JavaScript, AngularJS).

Par contre soyez sûr que si les frameworks ne savent pas répondre à un besoin (ou pas bien), vous trouverez votre réponse dans une application native, ou encore en développant des plugins Cordova faisant appel à du code natif.

Avec du recul : nous comprenons maintenant pourquoi des technologies telles que Cordova, CodenameOneDuckscriptXamarin, etc. sont apparues, et dans quel cas privilégier code natif ou pas.

Aussi, nous regardons avec grand intérêt des technologies récentes comme par exemple NativeScript, qui permet de développer des applis natives à partir de code JavaScript (ou mieux, TypeScript) : le meilleur des deux mondes en somme !

Ce sujet vous intéresse ?

NOUS CONTACTER