Livré avec une variété de widgets prédéfinis (par Google), Flutter est un framework comme React Native de Facebook et Xamarin de Microsoft, qui permettent également aux développeurs de créer des applications multiplateformes natives. Les solutions multiplateformes contribuent à réduire considérablement la durée de travail pour les développeurs et les coûts de déploiement pour les entreprises.
Selon Google, l'utilisation de Flutter augmente rapidement dans les entreprises grâce « sa capacité à construire des expériences de marque qui prennent en charge plusieurs plateformes ».
Flutter était utilisé pour développer des applications pour Android et iOS et constitue également la méthode principale de création d'applications pour Google Fuchsia. Cependant, depuis mai 2019, grâce aux possibilités qu’offre le langage de programmation Web Dart et aux outils de développement mis en place à cette période par les navigateurs, Google a pu étendre dans un premier temps le support du framework Flutter vers le Web puis dans un second temps vers les applications bureautiques exécutées par Windows, Mac OS et Linux et à d'autres plateformes. Désormais, a indiqué Google, le framework Flutter devient un framework d’interface utilisateur portable pour tous les écrans.
À travers cette mise à jour du framework, Google entendait permettre aux entreprises d’offrir de meilleures expériences à leurs clients sur tous les types d’écrans notamment par le biais d’applications mobiles, de bureau et de Web. « Pour les startups, la possibilité de joindre des utilisateurs sur un mobile, sur le Web ou sur un ordinateur de bureau par le biais de la même application leur permet d’atteindre l’ensemble de leur public dès le premier jour, au lieu d’avoir des limites pour des raisons techniques. En particulier pour les grandes entreprises, la possibilité de fournir la même expérience à tous les utilisateurs avec une base de code réduit la complexité et les coûts de développement, et leur permet de se concentrer sur l'amélioration de la qualité de cette expérience », a déclaré l’équipe en charge du développement du framework.
En avril 2020, Google a annoncé que l'utilisation de Flutter continue de croître rapidement, avec plus de deux millions de développeurs ayant utilisé Flutter au cours des seize mois qui se sont écoulés depuis sa sortie lors de la conférence Google I/O 2018.
Selon Tim Sneath, Chef de produit pour Flutter et Dart chez Google, l'utilisation de Flutter a augmenté de 10 % en mars par rapport à février. Il a ajouté que Flutter compte désormais « près d'un demi-million » de développeurs qui l'utilisent chaque mois.
La plupart d'entre eux s'appuient sur Windows, 60 % des utilisateurs de Flutter développant sur des PC Windows 10, 27 % sur MacOS et 13 % sur Linux, selon Google. Plus d'un tiers des utilisateurs de Flutter (35 %) travaillent dans une startup, tandis que 26 % sont des développeurs travaillant dans des grandes entreprises, 19 % sont des indépendants et 7 % travaillent pour des agences de design.
Selon Sneath, 78 % des développeurs de Flutter utilisent le canal stable, 11% utilisent la version bêta et 11% utilisent soit dev soit master. L’entreprise a également annoncé que les cinq premières régions d’utilisation de Flutter sont l'Inde, la Chine, les États-Unis, l'UE et le Brésil. Il y a aussi maintenant 50 000 applications Android créées par Flutter sur la boutique Google Play, et 10 000 d'entre elles ont été mises en ligne le mois dernier, d’après l’article de Sneath.
La version 2 du SDK Flutter de Google est disponible avec la prise en charge des applications de bureau et Web
La semaine dernière, Google a fait passer Flutter à la version 2.0, apportant de nombreuses prises en charge. Alors que Flutter a commencé par se concentrer sur le mobile lors de son lancement il y a deux ans, il a pris son envol ces dernières années et, avec la version 2, Flutter prend désormais en charge les applications Web et de bureau. Grâce à cela, les utilisateurs de Flutter peuvent désormais utiliser la même base de code pour créer des applications pour iOS, Android, Windows, MacOS, Linux et le Web.
« La grande chose qui justifie le changement de numéro de version est, bien sûr, la disponibilité du support Web et de bureau », a dit dans une déclaration Tim Sneath, chef de produit chez Flutter. « Et c'est juste un pivot assez profond. Il est rare que les produits aient soudainement tous ces terminaux supplémentaires ».
Flutter 2 pour le bureau, les appareils pliables et les dispositifs embarqués
Au-delà des appareils mobiles traditionnels et du Web, Flutter s'étend de plus en plus à d'autres types d'appareils, et Google a mis en évidence certains de ses partenariats lors du lancement de la version 2 de son kit de développement.
Sur le bureau, Google a annoncé que Canonical fait le choix de Flutter et en fait le choix par défaut de toutes ses futures applications de bureau et mobiles. L'équipe d’ingénieurs, contribuant au code pour soutenir le développement et le déploiement sur Ubuntu, a réécrit sa nouvelle application d'installation avec Flutter. Les ingénieurs en ont fait une première démo lors du lancement de Flutter 2.
Microsoft, également, étend son soutien à Flutter et travaille avec Google sur la prise en charge de Windows pour Flutter. Étant donné l'intérêt de Microsoft pour Android, ce n'est peut-être pas une grande surprise, et selon Google, Microsoft a publié mercredi des contributions au moteur Flutter pour aider à la prise en charge des appareils Android pliables. Ces appareils présentent de nouveaux modèles de conception, avec des applications qui peuvent soit élargir le contenu, soit tirer parti de la nature à double écran pour offrir des expériences côte à côte.
Le constructeur automobile Toyota a également annoncé son intention d'apporter une nouvelle expérience numérique à ses véhicules, en construisant des systèmes d'infodivertissement alimentés par Flutter. En utilisant l'API d'intégration de Flutter, Toyota est capable d'adapter Flutter aux besoins uniques d'un système embarqué, selon Google.
Ubuntu parie sur le futur de Flutter
Canonical est un fervent partisan de Flutter. Non seulement il a travaillé avec Google pour apporter le SDK Flutter aux ordinateurs de bureau Linux via le Snap Store plus tôt cette année, mais prévoit de créer un nouveau programme d'installation Ubuntu à l'aide de la technologie.
Maintenant, il est confirmé que tout va dans le sens de la technologie.
En effet, Ken VanDine de Canonical, qui travaille sur le desktop Ubuntu, est apparu lors du récent événement Flutter Engage de Google pour relayer le message sur le soutien complet de son entreprise pour la technologie :
« Nous [Canonical] n'avons pas seulement activé Flutter pour Linux, nous avons également travaillé avec l'équipe Flutter pour publier le SDK Flutter sous forme de Snap sur le Snap Store, l'app store pour Linux », a rappelé Ken. « En publiant le SDK Fluter en tant que composant logiciel enfichable, nous avons simplifié l’installation et la configuration de votre environnement de développement pour créer des applications mobiles, Web et de bureau avec Flutter sur Ubuntu. Flutter est le choix par défaut pour les futures applications mobiles et de bureau créées par Canonical ».
Voici la prise de parole de Ken VanDine durant l'événement Flutter Engage (rendez-vous à 3:12) :
C'est un engagement assez important pour un framework qui, jusqu'à il y a quelques mois, n'était pas du tout disponible pour les ordinateurs de bureau Linux. Néanmoins, Canonical voit clairement le potentiel de Flutter. Il a commencé à travailler sur le tout nouveau programme d'installation d'Ubuntu à l'aide de la technologie d'installation du serveur Subiquity et d'une interface utilisateur Flutter sur mesure de style Yaru.
Mais si le soutien de Canonical est sans aucun doute une victoire pour la communauté Flutter, quels avantages les applications Flutter offriront-elles aux utilisateurs d'Ubuntu ?
Le natif, c'est bien plus que de simples widgets
Comme Flutter, les applications Electron sont populaires auprès des développeurs Web car elles sont plus faciles à apprendre, plus rapides à créer et compatibles avec les compétences existantes (ou à défaut d'un meilleur terme, elles permettent d'arrondir les angles).
Les utilisateurs desktop, cependant, sont moins enthousiastes. Les applications Electron sont régulièrement critiquées pour leurs performances médiocres; ne s'intègrent pas ou ne prennent pas en charge les fonctionnalités de bureau; et sont nettement « différentes » des applications traditionnelles.
Flutter essaie d'aplanir bon nombre de ces défauts. Il offre de meilleures performances et permet aux développeurs d'utiliser des styles Web qui « imitent » l'interface utilisateur d'autres systèmes. Par exemple, une application Flutter conçue pour iOS peut utiliser un ensemble de widgets d'interface utilisateur calqués sur ceux d'iOS natifs.
Flutter n'est pas Electron bien sûr, mais il fait face à certains des mêmes obstacles à une adoption plus large (qu'ils soient réels ou perçus) à partir du point de vue d'un utilisateur final.
Le principal ? La nativité. Aucun des exemples de la galerie Flutter de Google ne fonctionne aussi bien qu'une application codée en natif. Non seulement l'expérience est différente à l'utilisation, mais également l'aspect différent (même en essayant d'imiter l'apparence d'un système spécifique, comme avec iOS).
De nombreuses petites incohérences (une interaction d'interface utilisateur lente ici, une étiquette de texte non stylisée là-bas, etc.) alimentent un sens plus large de « vallée de l'étrange ». Aussi, Canonical travaille sur un style « Yaru » (le thème de l'interface utilisateur utilisé dans Ubuntu depuis 18.10. Le thème détermine les couleurs, les bordures, les ombres, la taille et la forme des éléments individuels à l'écran) à utiliser par les développeurs d'applications Flutter. Une idée somme toute logique.
Il faut noter que même si ce « revêtement » visuel peut faire son effet, le style Yaru n'est utile que sur une distribution Linux parmi d'autres. Les développeurs qui souhaitent cibler d'autres distributions Linux ne trouveront pas Yaru très utile, non sans styles similaires côté Flutter pour d'autres thèmes GTK et Qt.
Google a l'habitude « d'abandonner » des projets qui ne correspondent pas à ses priorités (en constante évolution). Flutter est la tendance du moment, mais comme le mobile évolue plus rapidement que le desktop, il pourrait tout aussi bien tomber en disgrâce.
Ce qui conduit à cette question : en quoi cela profite-t-il aux utilisateurs d'Ubuntu?
Sources : Flutter Engage (vidéo d'intervention de Canonical dans le texte), Ubuntu (Yaru)
Et vous ?
Que pensez-vous des frameworks de développement d'interface utilisateur en général ? Que pensez-vous de Flutter en particulier ?
Utilisez-vous, avez-vous déjà utilisé ou souhaitez-vous en utiliser un ?
Si vous en avez déjà utilisé un, lequel ? Qu'en avez-vous pensé ?
Si vous souhaitez en utiliser un, lequel a votre préférence ?
Si vous ne souhaitez pas en utiliser un, pourquoi ?
En quoi l'adoption de Flutter profite-t-elle aux utilisateurs d'Ubuntu selon vous ?