Flutter #1 : Présentation

Flutter est un framework open source créé par Google qui permet de developper des applications multiplateformes. Avec Flutter, il est possible de programmer un projet et de l’exporter sur Android, iOS, macOS, Linux , Windows ou encore le web et tout ceci avec la même base de code. Etant développeuse Android, je vais avant tout vous parler des spécificités de ce framework pour le mobile.

Aujourd’hui il est utilisé en production et on peu trouver de nombreuses applications en Flutter sur les stores Android et iOS. Des applications qui ont été aussi bien développées nativement en Flutter que traduites depuis un projet iOS ou Android.
Parmi les applications Flutter les plus connues on peut retrouver notamment Google Ads et Alibaba.

Comment faire une application en Flutter ?

Dart

Pour faire une application en Flutter, il faudra utiliser le langage Dart.
Dart est un langage orienté objet inventé par Google disponible depuis 2013, dont le but initial était de remplacer javascript pour le web côté client.

Vous n’allez pas apprendre en détail le langage Dart dans cette video mais les points forts de ce langage sont la compilation AOT, qui veut dire ahead of time, se traduit par compilation anticipé, une spécificité qui rend Flutter interessant car elle permet un gain de temps non négligeable lors du développement d’une application.

Un autre point fort est aussi la capacité à faire des UI, plus besoin de storyboard et de XML, tout se fait de manière programmatique, c’est d’ailleurs aussi vers quoi se dirige le développement iOS avec Swift UI et Android avec JetPack Compose.

Dart est un langage single-thread avec un système d’event loop comme javascript mais il est bien sur possible de créer des Thread et de faire de l’asynchrone. Donc si vous avez déjà fait un peut de Java, de Javascript ou du C#, Dart ne devrait pas être compliquer à aborder pour vous, pour ceux qui débutent en programmation, Dart est un langage que je trouve assez facile d’approche et possède une bonne documentation sur internet.

Environnement de programmation

Pour programmer en Flutter vous pouvez utiliser 3 IDE différents, IntelliJ, Android Studio et Visual Studio Code.
Concernant les OS sur lesquels vous pouvez developper des projets en Flutter nous avons Windows, macOS, linux et depuis peu il est possible de developper aussi sous chrome os.

Pour commencer à faire un projet en Flutter il vous faudra suivre les indication d’installation du site officiel, Flutter.dev et installer les plugins nécessaires sur votre IDE vous pourrez commencer à developper votre premier projet.

Petite précision quand au développement iOS, il sera impératif d’avoir accès à ordinateur avec macOS à un moment donné, que ce soit pour la compilation ou la mise en ligne de votre application. Cependant, pour ce qui est de la compilation, il est possible de limiter l’usage d’un mac via des plateformes d’integration continue.

Lorsque vous développerez une application, vous pourrez accéder sans soucis aux émulateurs et vous pourrez aussi exporter sur vos Devices, attention, pour iOS vous devrez obligatoirement avoir un ordinateur mac avec Xcode d’installé.

Cependant, si vous ne désirez que tester l’UI sur iOS sans environnement mac, c’est possible avec l’outil Flutter inspector en changeant la plate-forme de rendu.
Il vous sera ainsi possible de tester le rendu visuel, soit l’interface utilisateur et la gestuelle de la version iOS sur un téléphone Android.

Flutter

Concernant le développement d’un projet , il est possible de faire une application entièrement en Flutter ou bien ne faire que la logique applicative en Flutter et developper les parties UI en Kotlin/XML pour android ou Swift/Storyboard pour iOS en transmettant les informations entre la logique et l’UI via des Channels.

Autre point ou l’on gagne du temps, lorsque vous allez developper une vue en Flutter, son design sera automatiquement adapté a la plateforme finale, un design pour Android, un autre pour iOS.

Prenons l’exemple d’un back button, un bouton qui nous permet de quitter la vue actuelle pour retourner à la précédente. Pas besoin de déclarer un rendu pour Android et un autre pour iOS, le widget s’adaptera aux plateformes tout seul. Reprenant les codes Matérial Design et les spécificités d’Apple en matière de design.

Il y a aujourd’hui beaucoup de librairies qui sont compatibles avec Flutter, vous pourrez faire ce que font les applications mobiles développées sur d’autres frameworks, vous pourrez utiliser la camera, Firebase, faire des animations, de la persistance de données et même des jeux videos, étant donné que Flutter permet de faire du 60 FPS, autant en profiter.

Flutter en est aujourd’hui à sa version 1.9, le projet avance bien et Dart aussi subi beaucoup d’évolution dernièrement. Si le développement multiplateforme vous à toujours tenté et que vous n’osiez pas vous y mettre, avec Flutter vous pouvez foncer, la documentation est bien fournie et il y a une communauté très active autour de ce projet.

Ce premier article est terminé, je vous conseille d’avoir un environnement de développement pret pour faire du Dart, car nous y verrons les bases du langage.