Avant tout chose, quel est l’intérêt d’un framework multi-plateformes face à du code développé nativement ? Un framework multi-plateformes permet de développer une application dans un seul langage pour ensuite porter sa compatibilité sur plusieurs types d’appareils. La plupart des frameworks actuels se basent sur un ou plusieurs langages Web et proposent une compatibilité iOS/Android. Les performances mesurées pour ces solutions restent bien éloignées de celles du code natif.
Malgré tout, l’utilisation de framework multi-plateformes permet aux entreprises de baisser considérablement le temps et le coût de développement d’une application.
Flutter, un framework multi-plateformes prometteur
Flutter est le framework open source de Google pour le développement d’applications multi-plateformes. La première version de Flutter date de 2017, on parle donc d’un framework bien plus jeune que React Native (Facebook). Ce framework utilise le langage Dart et permet de développer des applications Android, iOS et Web à partir d’un seul code commun.
Dart comme langage de programmation
Dart, le langage créé par Google en 2011 avec pour but initial de remplacer JavaScript commençait à tomber dans l’oubli. Il connaît une seconde vie grâce à l’émergence de Flutter. Si Google a choisi Dart, c’est principalement pour les deux modes de fonctionnement qu’il propose :
Just-In-Time (JIT) :
Ce mode de fonctionnement n’est pas offert uniquement par Dart, mais il permet aux développeurs de compiler le code modifié quasiment instantanément grâce à la fonctionnalité Hot Reload. Le temps de compilation avec ce langage est nettement inférieur à celui des langages natifs tels que Java, Kotlin ou même Swift.
Fonctionnalité Hot Reload
Ahead-Of-Time (AOT) :
On retrouve également le mode de fonctionnement opposé : AOT. Il permet de générer une application native pour chaque plateforme compatible avec Flutter. Le code est donc optimisé pour la plateforme qui l’exécute.
Les particularités de Flutter
Les composants :
Contrairement à Facebook avec React Native par exemple, Google a fait le choix de recréer l’intégralité des composants graphiques en Dart. Ce travail colossal permet aux développeurs de concevoir des interfaces adaptées à tous les appareils sans le moindre problème. D’après Google, et les développeurs utilisant Flutter, on observerait de meilleures performances qu’avec les autres frameworks multi-plateformes.
Mais nécessairement, cela signifie que le fichier final de l’application est alourdi, car il est en effet nécessaire d’incorporer ce code supplémentaire.
Les Widgets :
Flutter c’est également une centaine de Widgets capables de réaliser une et une unique tâche chacun. Ils permettent la création d’interfaces complètement personnalisables sous forme d’arborescence de Widgets. Google a préféré cette option plutôt que de créer des Widgets capables de réaliser plusieurs tâches. Ce qui résulte en un gain de performances assez incroyable. Ils font la force de ce framework.
Flutter se positionne comme une alternative performante et possède un grand nombre d’avantages face aux frameworks concurrents. Mais qu’en est-il de ses inconvénients ? Le framework de Google n’est malheureusement pas parfait et possède ses propres points négatifs.
Les points négatifs à prendre en compte
Il est nécessaire de prendre en compte les différents points négatifs de Flutter pour savoir si votre projet se prête ou non à son utilisation. On retiendra trois points négatifs majeurs qui peuvent ralentir l’aboutissement de votre projet Flutter :
-
- Il est d’abord nécessaire d’apprendre un langage supplémentaire, ce qui peut paraître contraignant pour certains développeurs.
- Le poids des applications est plus important. Il faut donc prévoir une phase d’optimisation.
- On parle également d’une technologie extrêmement jeune. La première version stable ne date que de fin 2018.
Le futur de Flutter
L’avenir de Flutter est très prometteur. Le projet Flutter pour le Web (encore en bêta) annonce le chemin que Google souhaite emprunter. Le framework proposera à l’avenir une compatibilité intégrale : iOS, Android, Web et même Desktop (en cours de développement). Un seul code source pour toutes ces plateformes.
Chez Visufo, nous commençons l’apprentissage de Flutter. Dans quelques mois nous serons en mesure de développer vos projets d’application avec ce framework. D’ici là, n’hésitez pas à nous contacter que l’on puisse en discuter.