C’était un peu l’euphorie dans l’écosystème des développeurs Google mercredi dernier, puisque se tenait le Flutter Engage. Chaque année, le géant de Mountain View a pris pour habitude de célébrer son framework open source Flutter au travers un événement toujours riche en annonces et nouveautés. Face au Covid, l’édition 2020 n’a pas eu lieu et a été décalée au 3 mars 2021, par l’intermédiaire d’une conférence en ligne.
Mais qu’est-ce que Flutter ?
Aujourd’hui de plus en plus d’applications Android et iOS se ressemblent, voire sont identiques. La question de mutualiser ce développement se pose alors.
Pour concevoir des applications dites multiplateformes, les développeurs ont pléthore de choix (Ionic, Cordova, Xamarin, React Native…) qui sont généralement basés sur des technologies web. Si l’on devait caricaturer, cela revient à mettre un site internet dans une application mobile. Bien que séduisant sur le papier (réduire les coûts, s’appuyer sur l’écosystème de développeurs…), les performances ne sont pas toujours au rendez-vous et l’intégration aux plateformes Android et iOS est parfois discutable.
Pour aller plus loin
Qu’est-ce que Flutter, l’outil permettant de créer des applications Android et iOS ?
C’est ici qu’intervient Flutter, dont le nom est issu d’une société rachetée en 2013 par Google. Au lieu d’utiliser des technologies web, il va créer une application dite “native” qui tire parti des SDK officiels fournis par Apple (iOS/iPadOS/watchOS) et Google (Android). Les performances y sont donc bien meilleures.
Pour l’anecdote, les ingénieurs de Google ont pris des vidéos au ralenti d’iOS pour reproduire à l’identique toutes les animations de la plateforme. Un vrai travail de titan. On y trouve également tous les éléments graphiques de Material Design, mais cette fois-ci, la copie était plus simple : Google étant à l’origine de ce design system.
150 000 applications utilisent Flutter sur le Google Play Store
Disponible en version 1.0 depuis 2018, le framework Flutter peut donc générer des applications mobiles et, selon le recensement même de Google, 150 000 applications sur le Play Store l’utilisent déjà.
En interne, la technologie est déployée chez Stadia, la nouvelle version de Google Pay, Google One ou encore les “clock faces” des Nest Hub. Mais d’autres acteurs comme Philips Hue, Ebay, Sonos, WeChat, Alibaba ou encore BMW répondent présent.
Les développeurs ont certes été séduits par l’aspect multiplateforme « mobile », mais surtout par la promesse induite. En effet, Flutter est en mesure de générer un site web ou encore des applications pour Windows, macOS et Linux à partir de la même base de code. Ces deux derniers composants étaient cependant en quelque sorte une « publicité mensongère », puisque qualifiés d’alpha/bêta. Bon nombre de fonctionnalités manquaient à l’appel.
Flutter 2.0 : les web apps qualifiées de stable
Alors que des rumeurs enflaient dans la communauté, Google a coupé court dès les premières secondes de son Flutter Engage en annonçant la bascule vers la version 2.0. Dans sa besace, des chiffres impressionnants : 24 541 tickets (=~ bugs) ont été clos ou encore 17 039 Pulls Requests (=~ contributions au projet — de Google ou de tierces parties) ont été acceptées.
Alors que le projet Flutter pour le web était jusqu’à présent en version bêta, il est désormais qualifié de stable, au même titre qu’Android et iOS. Un support amélioré de Firefox et Safari est notamment cité. Preuve que Google n’oublie pas ses propres concurrents.
Mais ce qu’il faut surtout retenir, c’est que Google clarifie les objectifs de sa technologie. En l’état, Flutter Web était souvent « marketé » comme le portage facile d’une application mobile vers un site web. Or, le code généré était plus que discutable pour le SEO, c’est-à-dire l’indexation par les moteurs de recherche (un comble quand on s’appelle Google !).
Désormais Flutter Web est désigné comme une technologie pour concevoir des applications de type Progressive Web Apps (comme l’application Twitter), des Single Page Apps (comme les sites de Maps ou Facebook qui, une fois chargés, ne nécessitent plus de rechargements lors du changement de fonctionnalité) ou enfin un moyen simple de porter une application mobile sur le web. Flutter Web n’est donc pas pensé et conçu pour des sites simples qui devront se tourner vers des technologies plus classiques.
Quelques exemples de réalisation ont été mis en avant, comme :
- Rive : un outil pour concevoir des animations
- iRobot : un outil pour contrôler les robots de la marque éponyme
- Flutter Plasma : un site de démonstration des capacités de Flutter Web
Des efforts sur les écrans pliables avec Microsoft
La frénésie autour des smartphones pliables/pliants ne cesse de croître, mais il faut l’avouer, les développeurs peinent à s’y intéresser. La raison est simple : le marché est encore trop marginal pour que les coûts de développement, puis de maintenance, soient rentabilisés. Et c’est un peu le paradoxe de l’œuf et de la poule (peu d’applications, donc peu de ventes de smartphones et inversement).
Google et Microsoft ont donc travaillé ensemble pour fournir des outils plus simples à prendre en main et ainsi essayer de convaincre de développer sur le Surface Duo notamment. Cette situation est d’autant plus cocasse que Microsoft dispose de son propre outil pour concevoir des applications multi plateforme : Xamarin.
Canonical (Ubuntu) va concevoir ses apps uniquement en Flutter
Concevoir des applications pour Linux est souvent un casse-tête, tant il existe de nombreux outils. Cela résulte trop souvent par une intégration troublante pour l’utilisateur (ex : des applications QT/KDE sur un environnement Gnome).
Après avoir annoncé il y a quelques jours que le futur installateur d’Ubuntu 22.04 serait conçu en Flutter, c’est en réalité un vrai tournant que va prendre Canonical, la société éditrice d’Ubuntu. Les nouvelles applications conçues par la société seront désormais faites en Flutter, qu’il s’agisse des applications Linux ou pour smartphones. Une vraie révolution !
Cette annonce est d’autant plus intéressante qu’elle permet de rassurer certains acteurs qui avaient peur que Flutter ne soit « le futur Stadia », c’est-à-dire une technologie pouvant être abandonnée à tout moment. En accueillant un acteur aussi fort du monde de l’open source, Flutter assoit sa position sur le long terme.
Un support Windows / macOS / Linux en version stable… bientôt
Soyons honnêtes, Google fanfaronne un peu trop, puisqu’il n’hésite pas à jouer sur les mots et indiquer que Flutter 2.0 marque la version stable pour le mobile, le web, mais aussi les ordinateurs. En réalité, Windows, macOS et Linux peuvent être utilisés avec la version stable de Flutter, mais en activant certaines options désactivées par défaut. La cible est plutôt pour la fin de l’année 2021.
Toutefois, cette annonce est, elle aussi, un véritable tournant, puisqu’elle permet à Flutter d’avancer fièrement que cinq systèmes d’exploitation sont gérés : iOS, Android, Windows, macOS et Linux.
Du Flutter dans nos voitures ?
Les constructeurs automobiles n’ont jamais été reconnus pour leur interface embarquée. Et depuis l’arrivée de Tesla, de gros efforts ont été réalisés pour combler le retard. Les fabricants ont toutefois encore du mal à faire le choix sur le système d’exploitation : faut-il poursuivre avec un système “maison”, partir sur Android Automative, voire opter pour d’autres solutions ?
C’est ici que Flutter prend tout son sens : en concevant des applications à l’aide de celui-ci, les constructeurs auto s’assurent de pouvoir conserver leurs différents développements, quel que soit le système d’exploitation. C’est ce qu’a amorcé Toyota, en produisant plusieurs démonstrations.
Mais cela marque un véritable tournant pour cette industrie, qui pourrait aisément changer d’avis sur le système d’exploitation, sans pour autant devoir tout redévelopper à chaque fois. Une annonce qui en cache une autre, en quelque sorte.
Dart en version 2.12 : performances et stabilité
Les applications Flutter utilisent un langage de programmation dont Google est à la fois créateur et mainteneur. Alors qu’il avait été lancé dans les années 2010, avec un accueil plutôt favorable des développeurs web, il est rapidement tombé dans l’oubli. Désormais transformé en langage de programmation pour Flutter, même s’il peut toujours concevoir des serveurs web par exemple, Dart 2.12 reçoit plusieurs améliorations et, notamment, deux particulièrement attendues par les développeurs.
La première (nommée null safety) les contraint à mieux gérer le cas des valeurs nulles, qui est le cas de crash/bug le plus fréquemment trouvé dans les applications.
La seconde vise à pouvoir communiquer avec du code écrit en langage C. Un procédé très utilisé lorsque le maximum de performances est exigé : dans les jeux vidéo, le montage de vidéos, la réalité augmentée… Cela ouvre donc le champ des possibles.
En résumé
Les projets open source ont bien souvent du mal à garder leurs annonces secrètes, tant tout est visible publiquement. À l’image d’Android, Google a su parfaitement cacher son jeu et nouer des partenariats qui permettent d’assurer une pérennité à son framework.
Flutter est donc aujourd’hui une technologie que vous allez non seulement voir croître dans les applications que vous téléchargez sur le Play Store ou l’App Store, mais aussi sur d’autres plateformes comme votre ordinateur ou même votre navigateur.
Reste toutefois l’épineuse question que Google doit se poser en interne : faut-il privilégier Android ou Flutter pour ses applications mobiles ? Tout un sujet !
Utilisez-vous Google News (Actualités en France) ? Vous pouvez suivre vos médias favoris. Suivez Frandroid sur Google News (et Numerama).
Petite nuance quand même. Vous citez xamarin dans les framework existant en disant "mais tous ces framework font des webapp c'est pas natif blabla". Sauf que xamarin génère bien des apps natives. Comme flutter
Pour le multi plateforme il y a aussi RAD Community Edition : https://www.embarcadero.com/fr/products/delphi/starter qui est déjà fonctionnel depuis des années.
Merci beaucoup :)
Bravo pour cet article bien écrit et bien complet Édouard.
Ce contenu est bloqué car vous n'avez pas accepté les cookies et autres traceurs. Ce contenu est fourni par Disqus.
Pour pouvoir le visualiser, vous devez accepter l'usage étant opéré par Disqus avec vos données qui pourront être utilisées pour les finalités suivantes : vous permettre de visualiser et de partager des contenus avec des médias sociaux, favoriser le développement et l'amélioration des produits d'Humanoid et de ses partenaires, vous afficher des publicités personnalisées par rapport à votre profil et activité, vous définir un profil publicitaire personnalisé, mesurer la performance des publicités et du contenu de ce site et mesurer l'audience de ce site (en savoir plus)
En cliquant sur « J’accepte tout », vous consentez aux finalités susmentionnées pour l’ensemble des cookies et autres traceurs déposés par Humanoid et ses partenaires.
Vous gardez la possibilité de retirer votre consentement à tout moment. Pour plus d’informations, nous vous invitons à prendre connaissance de notre Politique cookies.
Gérer mes choix