Flutter SDK : Créez des applications mobiles facilement


Avatar de Pierre Courtois

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…


Logo du SDK Flutter

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.

Pour en savoir plus

Si vous souhaitez en savoir plus sur les SDK, voici une vidéo qui présente avec des termes plus précis de quoi il s’agit.

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 : 

React Native

Chaque élément est compilé individuellement en élément natif à Android ou IOS qui sont deux systèmes différents. Il est donc possible de se retrouver avec des rendus différents, voire aléatoires au moment de lancer l’application. Il faudra donc parfois passer plus de temps sur le développement, afin de préciser le comportement souhaité pour chacune des deux plateformes. Expliqué de manière très exagérée, je peux me retrouver avec un bouton à bords carrés sur mon iPhone et un bouton à bords arrondis sur Samsung, parce que les deux n’interprètent pas mon code de la même manière. 

Flutter

Avant la compilation, Flutter va en quelque sorte positionner tous les éléments (appelés widgets) sur une toile (on appelle cela un Canva). Ce n’est qu’une fois cette étape réalisée que la compilation va s’opérer. Cela va permettre d’obtenir un rendu similaire entre IOS et Android et donc éviter les mauvaises surprises.

Attention

Bien que cela soit une force lorsqu’on souhaite obtenir le même rendu pour toutes les plateformes, cette caractéristique peut devenir une faiblesse si vous souhaitez faire quelque chose de spécifique pour chacune. 

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.

Avatar de Pierre Courtois