Le coût de développement des applications mobiles natives est bien trop élevé !

Une proposition de valeur.

Xavier Carpentier
Jan 17, 2017 · 8 min read

Article original écrit par Nader Dabit : The Cost of Native Mobile App Development is Too Damn High!


Nous avons atteint un tournant. À l’exception de certains cas uniques, il ne vaut plus la peine de créer et entretenir son application mobile en utilisant des frameworks natifs et des équipes de développement natives.

Salaire moyen d’un développeur IOS, Android et JavaScript aux Etats-Unis (http://www.indeed.com/salary, http://www.payscale.com/research/US/Skill=JavaScript/Salary)

Depuis plusieurs années, le coût de développement des applications mobiles natives augmente à un rythme effréné. Les nouvelles startups sans financement important rencontrent de plus en plus de difficultés pour créer des applications natives, des projets minimum viables (MVP) et des prototypes. Les entreprises existantes, qui ont besoin de retenir leurs talents pour exploiter les applications existantes ou pour en créer de nouvelles, se battent bec et ongle avec les entreprises du monde entier et sont prêtes à tout pour retenir leurs meilleurs collaborateurs.

Coût de développement d’un MVP au début de 2015 — Natif vs Hybride (Comomentum.com)

Qu’est-ce-que cela signifie pour nous ?

Si vous êtes une grande entreprise ou si l’argent coule à flot pour vous, on aurait auparavant pensé que tout irait bien, à condition que vous injectiez beaucoup d’argent dans vos projets de développement natif. Or ce n’est plus le cas.

Facebook, une entreprise que vous n’auriez jamais imaginé être en retard dans la guerre des talents (parce qu’ils ne le sont pas), avait rencontré des problèmes dans son développement d’applications natives qui ne pouvaient être résolus par l’argent. L’application était devenue tellement grande et complexe que les temps de compilation de l’application mobile pouvaient prendre jusqu’à 15 minutes. Il fallait attendre des heures, voire des journées entières pour tester un petit changement sur l’interface utilisateur, comme par exemple le déplacement d’un élément de quelques points.

En plus des temps de compilation considérables, Facebook devait implémenter et tester toute migration vers une application mobile au sein de deux environnements complètement différents (iOs et Android), avec des équipes utilisant des langages et des frameworks différents, ce qui rendait l’affaire encore plus complexe.

React Native est la solution de Facebook à ce problème.

Et si on laissait tomber les apps mobiles en faveur du web ?

Certaines personnes pensent que les applications mobiles sont vouées à l’échec. Bien que j’apprécie et respecte Eric Elliott et son travail, observons des données récentes et évoquons certains points de vue contraires :

Temps passé dans les applications mobiles (avril 2016, smartinsights.com)

Les applications représentent 90% du temps passé sur son mobile.

Il y a 2,5 milliards de téléphones portables dans le monde. Bientôt, ce nombre atteindra les 5 milliards. Dans la plupart des scénarios, il serait insensé qu’un commerce ou une application néglige 4,5 milliards de personnes.

On pensait auparavant que le développement d’applications mobile natives était trop cher pour la plupart des entreprises. Cela a été une réalité, mais le coût du développement web augmente également ; le salaire moyen d’un développeur JavaScript aux Etats-Unis étant désormais de l’ordre de 97 000 dollars.

En raison de la complexité accrue et de la demande pour un développement web de haute qualité qui monte en flèche, le prix moyen d’un développeur JavaScript se rapproche dangereusement de celui d’un développeur natif. Il n’est plus possible d’argumenter que le développement web est moins cher.

Et l’hybride alors ?

Les application hybrides sont des applications HTML5 logées dans des conteneurs natifs et permettant un accès aux fonctions de la plateforme native. Cordova et PhoneGap en sont d’excellents exemples.

Si vous cherchez à créer un MVP, prototype, ou ne cherchez pas à ce que l’expérience de l’utilisateur simule celle d’une application native, alors une application hybride pourrait être une bonne solution, mais il faut garder en tête que si vous voulez passer au natif, il faudra réécrire tout le projet.

Il y a beaucoup d’innovations dans ce milieu, ma préférée étant Ionic framework. L’hybride devient de plus en plus performant, mais n’est pas encore aussi fluide et évident que le natif.

Les applications hybrides n’atteignent pas la qualité requise par beaucoup d'entreprises — à savoir, la plupart des startups sérieuses et les grandes et moyennes entreprises — ni celles qu’exigent leurs clients, donnant un effet inachevé et moins professionnel.

J’ai lu qu’aucune des 100 meilleures applications dans les apps store n’était hybride, mais je n’ai trouvé aucune évidence pour confirmer cette affirmation. Toutefois, je ne doute pas que leur nombre se situe entre zéro et 5, et non sans raison.

La solution

Si vous suivez le monde du développement mobile, vous avez sûrement entendu parler des projets comme NativeScript et React Native.

Ces projets vous permettent de créer des applications mobiles de qualité native avec JavaScript et d’utiliser les mêmes éléments fondamentaux de l’interface utilisateur que les applications iOS et Android standards.

React Native vous permet d’avoir un seul ingénieur ou une seule équipe d’ingénieurs spécialisés dans le développement d’applications mobiles multiplateformes, le développement d'application desktops natives, et même dans le développement web en utilisant la base de code existante ou la technologie sous-jacente. Vous pouvez ensuite envoyer votre application à l’App Store, le Play Store et le web pour une fraction du coût traditionnel, sans perdre les bénéfices de la performance et la qualité native.

Il est commun que les applications React Native réutilisent jusqu’à 90% de leur code dans diverses plateformes, bien que cela reste typiquement entre 80% et 90%.

React Native élimine le clivage entre les équipes, permettant plus d’uniformité dans l’interface utilisateur et les API construits, et diminuant ainsi le temps de développement.

Ce dernier est aussi diminué grâce à la mise à jour instantanée de l’application quand un fichier est sauvegardé, ce qui élimine le besoin de compilation.

React Native vous permet également d’utiliser des outils tels que Code Push et AppHub pour mettre à jour votre code JavaScript à distance. Vous pouvez instantanément envoyer des mises à jour, fonctionnalités et corrections de bugs à vos utilisateurs, contournant ainsi le travail de regroupement, de soumission et d’acceptation de votre application dans l’App Store et les magasins Google Play, un processus pouvant prendre entre 2 et 7 jours (l’App Store étant la partie la plus difficile de ce processus). Cela est possible avec les applications hybrides, mais pas natives.

Si le rythme d’innovation dans ce milieu reste stable, vous pourrez même construire des applications pour les plateformes Apple Watch, Apple TV et Tizen, par exemple, dans le futur.

Bien que NativeScript soit encore assez nouveau, comme le framework Angular 2, qui était encore en mode beta il y a quelques mois, le projet aura un avenir tout aussi prometteur, à condition qu’Angular 2 maintienne une part de marché décente.

Ce que vous ne savez peut-être pas est que certaines des entreprises les plus innovatrices et certaines de celles qui ont les technologies les plus développées au monde misent gros sur ce type de technologie, et particulièrement sur React Native.

J’ai aussi parlé et travaillé avec plusieurs entreprises, certaines dans le Fortune 500, qui sont en train de passer à React Native.

L’utilisation de React Native en Production

En plus des exemples ci-dessous, voici une liste d’applications importantes qui utilisent React Native.

Facebook

Apps React Native par Facebook

Facebook utilise désormais React Native pour Ads Manager et les Facebook Groups, et compte l’utiliser pour alimenter son flux d’actualités.

Facebook consacre également beaucoup d’argent à la création et l’entretien de projets open source tels que React Native. Le réseau social et ses développeurs open source ont fait un travail fantastique ces derniers temps en créant nombre de projets impressionnants, qui bénéficient quotidiennement aux personnes comme moi et aux entreprises du monde entier.

Instagram

Instagram

React Native a été utilisé dans certaines parties de l’application mobile d’Instagram.

Airbnb

Airbnb

Airbnb est en train de réécrire une grande partie de son application en React Native (via Leland Richardson).

Plus de 90% de la Plateforme Airbnb Trips est écrite en React Native (via spikebrehm).

Vogue

Vogue, Top 10 applications de 2016

Vogue se démarque non seulement parce que l’application a été rédigée en React Native, mais aussi parce qu’elle a été classée parmi les 10 Meilleures Applications de l’Année, selon Apple.

Walmart

Walmart Labs

Article de Keerti pour en savoir plus sur la façon dont Walmart profite de React Native.

Microsoft

Microsoft mise gros sur React Native.

Ils ont déjà publié plusieurs outils open source, dont Code Push, React Native VS Code, et React Native Windows, soutenant la transition des développeurs à l’ère de React Native.

Ils pensent que si les gens construisent déjà leurs applications en utilisant React Native pour iOS et Android, et que s’ils peuvent réutiliser jusqu’à 90% de leur code, alors envoyer l’application sur Windows phone ne leur coûtera pas grand-chose en comparaison aux coûts et temps investis au moment de construire l’application.

Microsoft a énormément contribué à l’écosystème de React Native et a fait un très bon travail dans l’espace Open Source au cours des dernières années.

Conclusion

React Native et les technologies similaires représentent non seulement la prochaine étape mais aussi un changement de paradigme dans notre façon de créer des interfaces utilisateurs mobiles et des applications mobiles.

Entreprises

Si votre entreprise cherche à réduire ses coûts et temps de développement sans compromettre ni la qualité ni la performance, React Native est la solution que vous cherchez. Vos résultats financiers en sentiront l’impact.

Développeurs

Si vous êtes un développeur et voulez entrer dans un écosystème qui évolue rapidement et qui est tourné vers le futur, je vous recommande fortement d’apprendre à utiliser React Native.

Si vous savez utiliser JavaScript, vous pouvez démarrer très rapidement. Je vous conseille d’abord d’essayer Exponent et de voir ce que vous en pensez. Exponent permet aux développeurs de construire, tester et déployer des applications React Native multiplateformes très rapidement sur Windows et MacOS.

Si vous êtes déjà un développeur natif, vous en bénéficierez surtout parce que vous serez en mesure d’aborder le code natif. Bien que cette compétence ne soit pas souvent requise, elle n’en est pas moins extrêmement précieuse.

J’ai passé beaucoup de temps à apprendre et enseigner le React Native car j’ai hâte de voir où cela va mener et parce que c’est très amusant de créer des applications en l'utilisant.

Merci d’avoir lu cet article.


Xavier Carpentier

Written by

📱Freelance mobile developer, @FreelanceBoost CTO & @greaaat member #reactnative #react-native #react

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade