Le développement mobile reste un marché en pleine croissance. En France, 41 millions de personnes possèdent un smartphone. Au niveau mondial, ce marché pesait plus de 106 milliards de dollars en 2018. Les projections portent ce chiffre à plus de 400 milliards à l’horizon 2025/2026.
Trouver sa place dans ce marché est donc essentiel pour les entreprises. La question reste de savoir, parmi l’ensemble des technologies proposées permettant le développement mobile, laquelle choisir ?
Cet article vous offre un début de réponse en s’intéressant à Flutter.
Flutter est un Framework récent qui permet, à partir d’un seul code de développer des applications mobiles pour les deux grandes plateformes iOS et Android. La question que beaucoup se posent est : le projet est-il suffisamment mûr pour travailler avec en production ?
Notre expert, Julien Trillard, a accepté de répondre à nos questions afin de vous apporter des éléments de réponse.
Qu’est-ce que Flutter ?
Julien Trillard : Flutter est un Framework développé par Google. La première version stable est arrivée en décembre 2018. Il s’appuie sur le langage Dart développé lui aussi par la firme de Mountain View.
Il permet de créer des applications multiplateformes extrêmement performantes et dynamiques. Bien que, depuis le départ, les efforts se soient tournés essentiellement vers le mobile (Android et iOS), Flutter permet aussi de développer des sites web, des applications Windows, Mac et Linux. Toutefois, ces dernières fonctionnalités n’ont pas encore de versions stables.
Il est bon de rappeler que Flutter s’inscrit également dans un projet de grande ampleur nommé Fuchsia. Il s’agit d’un projet de système d’exploitation porté par Google visant à terme à remplacer Chrome OS et Android.
« Flutter permet de créer des applications multiplateformes extrêmement performantes et dynamiques.»
Pourquoi Flutter connait-il un tel essor ?
J.T. : Flutter a créé une petite révolution dans le développement mobile multiplateformes. Mais avant de revenir sur le phénomène, il convient de faire un bref retour en arrière.
Le développement mobile est en plein essor. Le nombre de clients augmente. Chacun voulant son application présente sur les deux plateformes principales : le Play Store de Google et l’App Store d’Apple.
Or, cet objectif suppose le développement de deux applications distinctes dites natives. En effet, chaque version impose des outils et des langages de programmation différents.
Une problématique se pose alors. Le coût de production de l’application se voit doublé.
Pour faire face à ce constat, de nombreuses solutions ont vu le jour afin qu’à partir d’un seul développement, les deux applications soient générées. Malheureusement, les premiers projets dans ce domaine étaient loin d’offrir des performances équivalentes aux applications natives. Facebook a été le premier à proposer une solution vraiment intéressante avec React Native à partir de 2015.
Google est entré dans la danse un peu plus tard en proposant Flutter. La performance est au rendez-vous et se rapproche même de celle des applications natives.
De plus, il est relativement aisé de développer avec ce Framework. Dès lors, on comprend l’engouement des développeurs qui trouvent beaucoup de plaisir à développer avec Flutter.
Les entreprises gagnent en temps de développement, ce qui permet de proposer des coûts de production plus concurrentiels aux clients.
Tout cela a pour effet de créer une véritable mouvance autour de Flutter.
« La performance est au rendez-vous et se rapproche même de celle des applications natives. »
Pourquoi choisir Flutter plutôt que React Native ?
J.T. : C’est une question à laquelle il est difficile de répondre. Même si Flutter bénéficie d’un léger avantage au niveau des performances, il faut avouer que React Native possède de bons arguments.
Cet écart de performances s’explique par le fonctionnement des deux technologies.
React Native est codé en JavaScript et utilise un « bridge » afin que ce code soit interprété nativement. C’est cette opération précisément qui est à l’origine des performances moins bonnes.
Flutter s’exécute plus comme un jeu vidéo. Tous les composants « mobiles » ont été recréés par les équipes de Google. Il n’est fait appel à aucun pont ou liaison pendant que l’application tourne. L’efficacité est alors au rendez-vous.
Alors comment choisir ?
Pour les entreprises, le choix se pose plutôt de manière stratégique autour des compétences des équipes de développeurs. Si les équipes maîtrisent déjà le JavaScript, il serait plus raisonnable et rapide d’adopter React Native. En revanche, pour les autres cas, notamment si du développement mobile natif se réalisait déjà ou si les développeurs travaillent autour de langages comme Java, alors il vaut mieux s’engager avec Flutter.
Pour les particuliers qui souhaitent se lancer dans le développement d’applications et qui n’ont pas de connaissances particulières dans un domaine ou un autre, Flutter reste un choix prioritaire selon moi.
Flutter est une technologie encore récente, pouvons-nous vraiment avoir confiance en celle-ci ?
J.T. : Effectivement, Flutter est tout nouveau. La sortie de la première version stable date de deux ans.
Ce qui est remarquable, c’est l’attrait fabuleux de la communauté pour cette technologie. Il est bon de rappeler que, là où le projet React Native dépasse tout juste les 91K étoiles sur Github en 5 ans, Flutter en est déjà à 106K !
De surcroit, cette communauté participe activement à enrichir les librairies. Google a dédié un site web à ce sujet : pub.dev. Au total, il concentre plus de 13000 packages divers et variés qui offrent des solutions à tous les problèmes courants.
Autres éléments qui démontrent sa montée en puissance rapide : les indicateurs tels que l’index Tiobe classent désormais le langage Dart en 27ème position. A titre de comparaison, le langage Kotlin qui permet également de développer des applications mobiles natives pour Android n’est qu’à la 36ème place. Autre indicateur et même constat avec le classement proposé par Redmonk qui classe le Dart 33ème.
Enfin, pour ceux qui douteraient encore de l’avenir radieux qui attend Flutter et de l’intérêt que lui porterait Google, il est bon de rappeler le rythme de développement effréné des équipes en charge du projet. A l’heure actuelle, une version majeure sort tous les trois mois environ, ainsi que des correctifs et améliorations tous les quinze jours.
Chaque version enrichit davantage le produit et ses performances. Un des prochains objectifs de Google est la mise à disposition d’une version stable pour le web.
Il n’y a donc aucune crainte à avoir.
Pourquoi les services de développement mobile doivent-ils impérativement se lancer ? Et quels sont les avantages pour les entreprises qui développent des applications mobiles multiplateformes ?
J.T. : Le développement mobile multiplateformes a longtemps été mal considéré. La raison principale ? Un problème de performance globale des applications.
Dans la mesure où cette problématique ne se pose plus vraiment avec Flutter, il n’y a plus d’obstacle à recourir au cross platform.
Il est utile, aussi, de rappeler que ce type de développement, dans la mesure où un seul et même code permet de fournir deux applications (Android et iOS) permet un gain de temps en moyenne estimé à 30%. Ce qui est considérable.
L’objectif principal étant toujours la satisfaction client, pouvoir fournir une solution qualitativement identique à un coût moins élevé est essentiel. Les entreprises qui tarderont à emprunter cette voie subiront de plein fouet la concurrence.
Quels sont les prérequis pour développer avec Flutter ?
Le langage Dart sur lequel s’appuie Flutter est orienté objet. Pour profiter pleinement de sa puissance, il faudra passer par son apprentissage.
Dans tous les cas, l’adaptation est très rapide pour les développeurs déjà en poste sur des langages comme Java.
Enfin, la communauté Flutter est très présente et il est facile de trouver des réponses à ses questions.
« La communauté Flutter est très présente et il est facile de trouver des réponses à ses questions. »
Quels enjeux pour le développement mobile en 2021 ?
J.T. : Le développement mobile est loin d’être à bout de souffle. Avec l’épidémie de COVID-19, le gouvernement a lancé un grand plan afin d’aider les petites et moyennes entreprises dans leur transformation digitale. Bien évidemment, cela passe par la création de site internet mais les applications mobiles deviennent presque aussi incontournables de nos jours. Posséder son application est une véritable valeur ajoutée.
Il ne faut pas oublier non plus l’arrivée prochaine de la 5G. Au-delà des débats qui tournent autour de cette technologie, il est fort à parier que, d’ici peu de temps, nos habitudes de consommation de données s’envoleront encore un peu plus. Les débits annoncés se rapprochent de ceux de la fibre et sont supérieurs à une connexion ADSL.
Julien TRILLARD est formateur en développement web et dirigeant d’une entreprise spécialisée dans le développement logiciel et la formation. Il fait de la création de logiciels et d’applications web et mobiles son quotidien.
Au travers de ses expériences de conception d’applications mobiles, il découvre le framework Flutter auquel il voue aujourd’hui une véritable passion. Dans ce livre, il transmet au lecteur tout son retour d’expérience sur le développement d’applications multiplateformes avec ce framework de Google.