Flutter est désormais en version 2. Il s’agit d’une étape importante car la plateforme concrétise une partie de l’ambition de Google : Flutter partout ! Jusqu’à présent, Flutter était surtout pour les systèmes mobiles : Android, iOS. Les supports Web, desktop, IoT, etc. étaient rudimentaires ou inexistants. Flutter 2 apporte le support des apps web. La partie desktop (Linux, macOS, Windows) est disponible mais il reste incomplet. Le niveau de support n’est donc pas encore homogène selon les cibles d’exécution.

En 2 ans, les équipes Flutter ont réalisé un énorme travail : 24 500 bugs et demandes, 17 000 pull requests reçues et traitées. Preuve de l’intérêt du projet mais aussi des nombreux problèmes.

Attention !
Flutter impose la ligne de commande pour les nombreuses installations, la maintenance et la configuration.

Flutter 2 introduit officiellement Flutter Web en version stable. Le Web est vu comme un autre device cible. Flutter Desktop est présent mais uniquement en bêta et ce support nécessite des ajustements sur la partie interface. La version stable ne sera pas annoncée avant la fin de l’année. Une interface desktop diffère des autres car il faut un mapping entre Flutter et l’OS natif.

Les cibles supportées

Mobile Web Desktop
OS Android, iOS Chrome Linux, macOS, Windows
Support stable Oui Oui Non (pas avant fin 2021)
Particularités prérequis Pas de changement par rapport à la 1.x Installation de Chrome Selon l’OS voulu.

Sur la partie Web, installez Chrome. Il passe en vert dans la configuration flutter doctor. Sur la partie desktop, vous devez installer le ou les OS avec la commande :

flutter config –enable-(nom os)-desktop

Vous devez absolument installer le desktop voulu pour Flutter Desktop sinon vous aurez de jolis warning si vous tentez flutter run -d  windows.

Double attentions pour flutter desktop :
Installez préalablement les dépendances flutter desktop avant de créer un projet desktop…

Selon l’OS, les prérequis ne sont pas identiques. Si vous faites du Windows, vous devez installer Visual Studio avec tous les éléments par défaut desktop C++. Visual Studio Code n’est pas supporté, il faut VS classique. Sur Mac, ce sera l’incontournable XCode.

Doctor et Devices

Ayez toujours le réflexe d’utiliser deux commandes essentielles : doctor et devices.

Doctor permet de voir immédiatement la configuration et surtout si tout est bien configurée. En tout cas de doute, doctor est votre meilleur ami. Devices est tout aussi utile. Elle listera tous les devices targets disponibles : les mobiles, le web et les desktop. La liste évolue selon les devices installés et retirés. Rappelons que Flutter utilise device génériquement pour les terminaux mobiles, le web et les OS desktop.

Si la config est OK, donc :

  • Flutter doctor ne listera aucun warning
  • Flutter devices : la liste des devices indiquera bien les mobiles, Chrome et l’OS.

L’usage de web, mobile, desktop est fluide et pratique. Cette évolution positive va rapidement s’imposer. Les autres solutions multiplateformes devraient rapidement en souffrir. Nous pensons notamment à Xamarin. Mais les plateformes JS ne seront sans doute pas à la fête.

Flutter peut-il rejoindre la longue liste des projets arrêtés par Google ?

C’est la question que l’on se pose souvent avec Google. L’éditeur arrête parfois brutalement un service quand le succès n’est pas au rendez-vous ou quand le résultat final n’est pas jugé pertinent.

Flutter pourrait-il être brutalement arrêté par Google ? Logiquement non car la plateforme connaît une forte progression mais rien n’est impossible. Et ce n’est pas parce que Ubuntu utilisera Flutter que cela rassure totalement.

Flutter pourrait se détacher peu à peu de Google comme cela s’est produit pour Rust avec la création d’une fondation suite aux déboires de Mozilla.

Source : Programmez.com (François Tonic)

EnglishFrench