Faut-il passer à Flutter ?
C'est LE framework à la mode ! Flutter rebat les cartes du développement mobile en permettant de développer quasiment nativement une seule application compatible sur Android comme iOS. De quoi séduire les développeurs mobiles !
Exit le développement d'applications spécifiques pour les deux systèmes d'exploitation mobiles du marché : iOS et Android. Flutter brise les codes et permet de coder une seule et même application pour ces deux plateformes et en natif, rien que ça ! S'appuyant sur le langage de programmation Dart (ex-Dash créé par Google en 2011) destinée, à l'origine, à se substituer au JavaScript, Flutter bénéficie du soutien de Google depuis la sortie de sa première version stable en décembre 2018. Celui-ci se veut particulièrement intéressant en termes de conception d'application mobile et vient directement concurrencer React Native, le framework de Facebook.
Des avantages percutants...
Aujourd'hui, deux frameworks se partagent le marché du développement mobile multi-plateformes : React Native et Google Flutter. Si l'outil de Facebook utilise le langage JavaScript avec des bibliothèques de premier ordre notamment pour la partie interface utilisateur approchant l'apparence des composants natifs (un bouton iOS ressemble à celui-ci), Flutter mise sur l'interopérabilité native tout en se montrant particulièrement performant. Selon le test opéré par l'entreprise Rainway Inc avec Flutter, « la latence lors du transfert de paquets vidéo en continu, mesurée entre la réception du paquet de WebRTC du côté Flutter et son acheminement vers le décodeur du côté natif est d'environ 0,3 milliseconde. Cela ne représente que 2 % de la durée d'une seule image de séquences de jeu de 60 ips. » De plus, ce framework possède deux particularités principales :
- Les widgets : permettant de construire simplement des interfaces tout en apportant une lisibilité dans le code et donc une maintenabilité plus importante ;
- Les composants : conçus par Google, les développeurs disposent d'une large galerie de composants s'adaptant tant à iOS qu'à Android.
Parallèlement, les éléments n’existant pas sous Flutter peuvent être créés via des ponts en code natif Swift ou Kotlin. Le langage de programmation, étant plus récent, se veut mieux optimisé. Il nécessite moins de lignes de programmation pour un résultat équivalent en natif. Vu qu'une seule application est générée pour deux plateformes, la maintenance s'avère simplifiée et rapide, la correction de bug et les mises à jour s'effectuant qu'une fois tandis que Flutter supporte les anciennes versions des OS (Android 4.1 et + / iOS 8 et +).
… et des inconvénients
Comme tout framework récent (ou pas!), celui-ci souffre de quelques déficits. La technologie encore jeune nécessite une petite prise en main, le développeur devant apprendre un nouveau langage, la courbe d'apprentissage sera plus long qu'une personne sachant déjà coder en JavaScript qui se tournera plus facilement vers React Native, utilisant ce langage, ce dernier disposant (encore) d'une forte communauté. À cela s'ajoute le poids des applications créées sous Flutter, plus lourdes tandis que les nouveautés annuelles des OS ne sont pas toujours implémentées dans Flutter à leurs sorties. Des fonctionnalités comme la prise en charge de la 3D émergent sous ce framework et ne possèdent pas encore toute la force que peuvent avoir d'autres frameworks, mais ce ne serait tarder, les développeurs de Flutter étant plutôt proactif.
Globalement, malgré sa relative jeunesse, ce framework séduit de plus en plus de personnes, réduisant fortement le délai de développement et de mise en production. Un gain de temps non négligeable qui peut fortement réduire le coût des projets. Et vous, êtes-vous plus Flutter ou React Native ?