Qu’est-ce que Flutter ?
Contrairement à ce qu’on peut penser lorsqu’on débute, Flutter n’est pas un langage de programmation. C’est un SDK qui utilise le langage Dart pour vous permettre de développer des applications pour Android, iOS, le web et même le desktop à partir d’un seul code. Ceci représente un gros avantage, car il vous permet de coder une seule fois pour plusieurs plateformes, et d’éviter d’avoir à apprendre plusieurs langages comme Java, Kotlin ou Swift.
Que veut dire SDK ?
Un SDK (Software Development Kit) est une boîte à outils vous permettant de créer des applications. Le Flutter SDK regroupe ainsi tout ce dont vous avez besoin :
- Une documentation claire pour vous guider.
- Des widgets (boutons, icônes, formulaires) prêts à l’emploi.
- Un compilateur pour traduire votre code en langage machine.
- Des outils pour tester et lier vos fichiers.
Ainsi, un SDK vous permet de ne pas avoir à tout coder de zéro. Par exemple, pas besoin de définir ce qu’est un bouton et à quoi il sert. Flutter dispose de plusieurs méthodes et widgets dans sa librairie, pour que vous n’ayez plus qu’à personnaliser et définir votre bouton en quelques lignes.
Pourquoi utiliser Flutter pour coder mon application mobile ?
Puisqu’il existe différent SDKs, il est légitime de se demander si Flutter est l’outil le plus approprié pour son projet. Voici donc les avantages et les inconvénients à utiliser cet outil plutôt qu’un autre.
Avantages de Flutter
Par rapport à ses concurrents, Flutter possède deux gros avantages. Ce sont ces points qui en font selon moi un outil adéquat pour quelqu’un qui débute dans la programmation d’applications mobiles et souhaite vite monter son projet (comme c’était mon cas).
Facilité d’utilisation
En créant Flutter, Google a souhaité offrir un outil qui facilite la création d’une application mobile et réduit le temps de développement. En effet, Android et IOS, qui sont les deux systèmes d’exploitation les plus populaires, utilisent normalement des langages bien distincts :
- Java ou Kotlin pour Android ;
- Swift et C++ pour IOS.
Cela veut dire qu’il va falloir coder une version de notre application pour Android et une deuxième pour iOS si l’on souhaite toucher les deux plateformes (voire une autre version pour le web). Avoir deux, voire 4 langages à apprendre peut aussi s’avérer effrayant quand on débute de zéro et que l’on souhaite simplement tester son idée. Flutter règle en grande partie ce problème en nous permettant de travailler simultanément sur les deux versions, avec un seul code qui est le Dart.
Une meilleure visualisation du rendu final
Pour comprendre ce point, il me faut d’abord donner un petit peu de contexte. Lorsque l’on crée un élément (Par exemple un bouton) avec notre SDK, celui-ci va devoir être “compilé” (en quelque sorte traduit) pour pouvoir être interprété par le système d’exploitation.
Expliqué avec des mots moins techniques, imaginons que Flutter parle en français et IOS en anglais. Pour que Flutter transmette le mot “carré” à mon Samsung Galaxy s23, je vais d’abord devoir le traduire en anglais. Ce n’est qu’une fois traduit, que le mot va prendre sens pour le téléphone et qu’il va pouvoir m’afficher un carré à l’écran.
Ce qui va faire une des Forces de Flutter, c’est la manière dont il va gérer cette compilation. Voici, par exemple, la différence si on le compare à un de ses concurrents, React native :
Inconvénients de Flutter
Bien sûr, il existe des inconvénients à Flutter par rapport à d’autres SDK, qu’il est important de souligner.
Limites en termes de performances
Puisqu’on ne code pas en natif, c’est-à-dire dans le langage qui est propre à chaque système d’exploitation, les performances de notre application s’en voient forcément réduites. Cela peut être un problème lorsqu’on arrive sur des projets lourds ou assez complexes. En gagnant du temps sur le développement, le risque est donc de perdre un peu sur la performance du rendu final. Cette préoccupation reste toutefois mineure pour quelqu’un qui débute un projet dans son coin.
Des fichiers volumineux
Les applications faites sur Flutter tendent à être plus lourdes que celles, faites sur d’autres plateformes. Cela peut donc s’avérer être un problème pour les utilisateurs qui possèdent peu d’espace sur leur mobile.
Une communauté encore jeune
La première version de Flutter a été publiée en 2017, ce qui en fait un SDK encore assez jeune. Par le fait même, la communauté qui travaille dessus est encore réduite et il peut s’avérer compliqué de trouver des ressources en ligne (encore plus en français). C’est d’ailleurs cette raison qui m’a poussé à me lancer dans la création de ce blog.
Toutefois, cet inconvénient est à modérer. En effet, l’utilisation de cet outil s’est beaucoup démocratisée depuis 2020 et on trouve de plus en plus de réponses à toutes les questions, sur les forums en lignes.
Le langage Dart
Flutter utilise le langage Dart qui lui est propre. Celui-ci possède l’avantage de simplifier la vie des personnes qui débutent, mais l’inconvénient de n’être utilisé nul par ailleurs. Cela veut donc dire qu’il vous faudra apprendre un voire plusieurs autres langages si vous souhaitez passer sur un autre SDK.
Conclusion
Voici qui conclut cette présentation rapide de Flutter. Pour résumer, Flutter peut être un bon point de départ si vous souhaitez vous lancer dans la programmation d’une application mobile, mais n’y connaissez rien. Celui-ci vous offre tous les outils pour créer une application dynamique, avec un minimum de temps d’apprentissage.
Toutefois, avant de commencer à coder quoi que ce soit, je vois invite à lire l’article suivant qui présente rapidement le langage de programmation Dart.