18 août 2020

A la découverte de Flutter pour le développement mobile, web et desktop

flutter illustration

Flutter est une boîte à outils open source développée par Google. Elle permet de créer des applications natives compilées pour iOS et Android, ainsi que des sites web et des applications de bureau. Flutter permet de développer une application plus rapidement utilisant Dart comme langage de programmation ; langage qui est également développé par Google. Google s’est inspiré de React pour créer le framework Flutter, dont ils ont sorti la première version fin 2018.

 

Les avantages pour le développement d’applications

Flutter permet de développer son application à partir d’une seule base de code qui peut être ensuite déployée sur iOS, Android, le web et le desktop (Mac, Windows). Cela permet de ne pas devoir re-développer tout le code son application pour chaque plateforme différente avec des langages différents.

Le framework est facile à prendre en main car la plupart des widgets existent déjà. Ce sont des composants réutilisables partout dans votre projet, qui ont pour but de rendre le travail plus rapide. Il y a des widgets qui permettent de créer une liste ou une barre de navigation, il y en a qui sont là pour vous aider à placer des éléments sur la page ou encore à créer un formulaire en seulement quelques lignes. Après un peu de pratique, le langage Dart devient assez intuitif et permet de bien exploiter le potentiel des widgets.

Avec Flutter il est très simple de voir en temps réel les modifications que l’on fait dans son code car il est muni d’un hot reload performant. Lorsque l’on sauvegarde son code, les changements effectués sont affichés après quelques secondes sur l’appareil et il n’y pas besoin de relancer l’application entièrement.

Autre point positif, il existe énormément de paquets qui sont utilisable et qui sont là pour faciliter le travail. Ce sont d’autres développeur qui les ont codés et les ont mis à disposition. Il suffit de les importer et ils sont prêts à l’usage. Un exemple de paquet souvent utilisé est l’authentification Google qui permet de se connecter à une application avec son login google sans devoir se créer un nouveau compte.

 

Les limites de cette technologie

Comme il s’agit d’une technologie plutôt récente, tout n’est pas encore optimal. 

Flutter n’est pas très adapté pour de gros projets. Les fichiers prennent beaucoup de place ce qui a une conséquence sur l’application finale car elle devient moins rapide au démarrage.

Au niveau de la documentation, il y a un manque sur certains aspects, même si souvent des solutions sont trouvables sur internet pour la plupart des cas.

Ensuite, il manque des paquets pré-existants lorsqu’on veut rentrer dans des notions plus compliquées comme des graphiques ou des calendriers. Il en existe quelques-uns mais il ne sont pas complets ou ne font pas exactement ce que l’on veut. Il faut donc les modifier pour avoir un résultat correct.

 

En résumé

Flutter est un très bon moyen de réaliser une application pour iOS et Android rapidement une fois le langage Dart appris. Les widgets sont simples à utiliser et permettent d’accélérer le processus de développement. Pour une personne n’ayant jamais utilisé Dart, il faudra bien évidemment prendre du temps pour apprendre et comprendre le langage, ce qui est un léger contretemps pour les premières applications.

Alors faut-il choisir Flutter pour votre prochain projet d’application mobile? Comme souvent pour les choix technologiques, tout dépend des besoins et des fonctionnalités de votre projet afin de déterminer ce qui sera le plus optimal comme technologie de développement.

 

Quelques références

Un bon article sur les pour et les contre : https://www.altexsoft.com/blog/engineering/pros-and-cons-of-flutter-app-development/

Un bon article sur les aspects plus techniques:

https://www.jesuisundev.com/flutter-votre-prochain-framework-mobile/

Site officiel:

https://flutter.dev/