Apps hybrides VS Apps natives : quelle techno choisir en 2018 (et 2019) ?

Alexandre Grisey
5 min readJan 11, 2018

--

Nous sommes en 2018 et les technos de développement d’applications mobile évoluent. Il est donc temps de relancer le débat : natif ou hybride ?

Réponse courte :

Ca dépend.

Réponse longue :

Avant que vous vous disiez “ouais fin, il est qui pour juger lui ?”, je me présente rapidement. Je développe des applis mobiles depuis 2012, et j’ai une formation spécialisée en développement mobile, durant laquelle j’ai testé le natif et l’hybride. Depuis 2012, j’ai travaillé sur un projet natif iOS (en Objective-C :( ), 4 projets natifs Android, et 3 projets hybrides (Cordova puis Ionic). Donc même si je n’ai pas la science infuse, je pense que mon avis peut être utile.

Voilà, ça c’est fait, on peut attaquer le gros du morceau.

Le natif

Le natif, qu’est ce que c’est ?

Faire du développement natif, c’est coder une application sur chaque plateforme. On ne va parler ici que d’Android et iOS (Windows Phone étant mort et enterré, les autres OS étant marginaux). Donc deux codes différents, deux langages différents, pour les deux plateformes.

Android utilise Java et le SDK Android est plutôt bien foutu. Avec Android Studio et son éditeur visuel, c’est en réalité assez simple de coder quelque chose de fonctionnel, pour peu qu’on connaisse déjà Java et qu’on fasse quelques tutos sur le net.

iOS utilise Objective-C ou Swift (si vous voulez vous mettre au développement iOS, commencez directement avec Swift, de rien), et Apple vous oblige à utiliser Xcode, qui n’est disponible que sur mac…
Quand on a eu une formation ou qu’on trouve des bons tutos, créer une application iOS n’est pas si compliqué. En revanche, la prise en main est plus difficile, à mon avis, qu’avec Android.

Les avantages du natif

  • Le natif est plus puissant que l’hybride (voir le fonctionnement de l’hybride plus bas), donc plus fluide. C’est un avantage non négligeable pour une app avec des animations. Et si vous voulez faire de la 3D, ne pensez même pas à l’hybride. Toutefois, cette différence tend à diminuer.
  • Les SDK. Les SDK sont faits et maintenus par Google et Apple. Vous avez donc l’assurance d’avoir des mises à jour régulières, quasiment dépourvues de bugs, et avec toutes les fonctionnalités intégrées.

Les inconvénients du natif

  • Deux applications différentes. Pour créer une app disponible sur les stores Apple et Google, il faudra la coder entièrement et la maintenir deux fois. Il faudra aussi connaître les deux langages. Si vous êtes un développeur seul, c’est un problème, le temps d’apprendre à se servir des deux SDK, des deux IDE, des deux langages et de leurs subtilités est à prendre en compte avant de choisir le natif.
    Après, si vous voulez développer votre app seulement sur Android et que vous connaissez déjà le Java, aucun problème ! Mais ne développer que sur une plateforme est pour moi une erreur.

L’hybride

L’hybride

Le développement hybride permet de coder une seule fois l’app pour déployer sur tous les stores. One code to rule them all. Je ne vais parler ici que que de Cordova (plus précisément d’Ionic). Mais si vous voulez utiliser d’autres technos, penchez-vous sur React Native ou Xamarin, entre autres.
Donc Ionic, qui est mon petit framework préféré ❤, est une techno basée sur Cordova. Cordova vous permet d’écrire le code une fois (en Javascript, HTML et CSS), pour déployer sur tous les stores. En gros, le code écrit en JS fait appel à des librairies qui font elles-mêmes appel à du code natif. C’est en ça que les apps hybrides sont moins performantes.
Ionic est, comment dire, une surcouche à Cordova. Ionic utilise nativement Typescript et fonctionne avec Angular. Il vient aussi avec tout un tas de composants natif-like. Ce qui simplifie grandement le développement.
Je ne vais pas m’étendre sur la présentation d’Ionic, mais une petite recherche Google vous permettra d’approfondir le sujet.

Les avantages de l’hybride

  • Coder une seule fois vous permet de créer deux apps différentes. Le temps de développement et de maintenance s’en trouve grandement diminué. De plus, si vous connaissez déjà les langages web, faire une appli avec Cordova devient encore plus facile.
  • On a accès facilement aux fonctionnalités de l’appareil. Prendre une photo, se géolocaliser, envoyer des Push, tout ça est très facile à coder en hybride.

Les inconvénients de l’hybride

  • Comme je l’ai dit, un peu moins de puissance. Cela dit, les smartphones sont de plus en plus puissants, et la différence tend à diminuer (aussi grâce aux efforts d’Apple et de Google).
  • Les plugins Cordova sont open-source, écrits et maintenus par la communauté. Ils doivent être mis à jour régulièrement (si les SDK natifs changent), et ce n’est malheureusement pas forcément le cas. Donc soit vous ouvrez un ticket sur le Github du plugin et attendez, soit vous mettez les mains dans le cambouis et corrigez le bug dans le code natif. Notez quand même que ces problèmes sont assez rares.

Conclusion

Cela dépend de vos cas d’utilisation.
Si vous avez les ressources et le temps, le natif peut-être une bonne solution. Si vous voulez développer sur une seule plateforme, c’est peut-être la meilleure solution (au risque de vous priver d’une partie des utilisateurs : en France, 26% des utilisateurs étaient sous iOS en juin 2017, 66% sous Android).
En revanche si vous êtes tout seul, que vous voulez sortir une app rapidement ou que vous connaissez déjà les langages web, l’hybride est la meilleure solution.
Personnellement, mon coeur penche pour l’hybride. Cette techno est de plus en plus puissante et utilisée, et facile d’accès. Aucun doute sur le fait qu’elle prenne de plus en plus d’ampleur dans le futur.

Edit : Suite à des retours, je préfère faire une petite mise au point : Quand je parle d’applis “hybrides” dans cet article, je fais un petit raccourci linguistique. Quand je dis “hybride” j’entends plus “cross-platform”, ce qui fait une légère différence. L’appli hybride étant un sous-type d’appli cross-platform. Voili-voilou.

Vous voulez devenir développeur freelance vous aussi ? Inscrivez vous à la mailing list et recevez gratuitement des conseils :

Vos données sont sécurisées et vous pourrez vous désinscrire à tout moment 😉

Hey ! J’ai créé un site qui aide les développeurs à devenir freelance ! Allez jeter un oeil, il y a plein d’articles intéressants ! 😉

Je propose aussi des formations pour les développeurs freelance, et ça se passe ici !

--

--