
Le framework de développement Flutter de Google a finalement réalisé ses aspirations multiplateformes avec une version stable de la prise en charge de Linux et macOS. Flutter 3.0, annoncé lors de la conférence des développeurs I/O de Google, offre aux développeurs un moyen d'écrire des applications pour les six principales cibles de plateforme destinées aux consommateurs à l'aide du langage de programmation Dart. Sans parler des appareils embarqués.
« Nous annonçons Flutter 3, qui est l'aboutissement de notre parcours vers le développement d'interfaces utilisateur multiplateformes sur téléphone, ordinateur de bureau et Web », a déclaré Tim Sneath, directeur des produits et de l'expérience utilisateur pour Flutter et Dart. « Le moment où nous avons lancé Flutter il y a quelques années remonte vraiment. Avec le lancement de Flutter 1, nous étions assez clairs, du moins en termes de vision, même à ce moment-là, que nous n'avions pas l'intention d'être une boîte à outils mobile. Nous voulions être considérés comme étant plus larges qu'une boîte à outils qui cible uniquement les téléphones ».
« Avec Flutter 2.0, nous avons fourni un support Web et, tout récemment, nous avons fourni un support pour Windows », a déclaré Tim Sneatht. « Et maintenant, avec Flutter 3.0, nous avons finalement atteint le point où nous avons terminé ce voyage. Nous avons les six principales plateformes - iOS, Android, Web, Windows, macOS, Linux - toutes prises en charge en tant que parties stables du framework Flutter ».
Avec la version Flutter 3, la plateforme prend donc désormais en charge les applications iOS, Android et Web, ainsi que les applications de bureau Windows, macOS et Linux, le tout dans le cadre de la version stable de Flutter. Sur macOS, cela inclut la prise en charge des binaires universels afin que les applications puissent s'exécuter en mode natif sur les puces Intel et Apple Silicon, tandis que pour la version Linux, Google s'est associé à Canonical d'Ubuntu pour « offrir une option de développement hautement intégrée et de pointe ».
La prise en charge de Linux et macOS était auparavant considérée comme étant en version bêta et donc pas particulièrement adaptée aux applications de production. Maintenant que Material Design 3 de Google est presque terminé, ceux qui cherchent à créer des interfaces utilisateur multiplateformes dans l'idiome Android peuvent compter sur une boîte à outils esthétiquement cohérente.
Malgré la prise en charge des ordinateurs de bureau, la plupart des développeurs considèrent probablement Flutter comme un framework pour créer des applications mobiles. Mais un certain nombre de développeurs l'utilisent également activement pour créer des applications de bureau, y compris les anciens fondateurs de Wunderlist qui ont lancé leur nouvelle application de productivité, Superlist, en version bêta en tant qu'application Flutter sur desktop.
Autre nouveauté de Flutter 3, des intégrations plus approfondies avec Firebase, la plateforme back-end de Google pour la création d'applications mobiles et Web. Cela n'enlève rien aux intégrations de Flutter avec des services tiers, y compris le concurrent de Firebase AWS Amplify. Mais comme le note l'équipe Flutter, l'intégration Flutter/Firebase est désormais un élément central entièrement pris en charge de Firebase et les deux équipes prévoient de faire évoluer « la prise en charge de Firebase pour Flutter en parallèle avec Android et iOS ».
« Seulement » 23 000 packages dans l'écosystème Flutter
Interrogé sur le nombre relativement restreint de packages disponibles pour les développeurs Flutter, Sneath a déclaré que la communauté Flutter s'était mobilisée pour combler le vide, individuellement et au niveau de l'entreprise.
« Des entreprises comme Microsoft et Amazon écrivent des plugins, et les communautés commencent à se regrouper et à mettre en commun leurs ressources autour de packages communs que d'autres utilisent ou veulent voir », a-t-il déclaré. « Nous avons maintenant plus de 23 000 packages dans l'écosystème Flutter et cela augmente rapidement, à la fois en nombre et en qualité de ces packages ».
L'aspect le plus important de la version 3.0 est sans doute la décision de Google de soutenir le développement de jeux occasionnels via son Casual Games Toolkit, une sélection de modèles et de meilleures pratiques, ainsi que des crédits pour les publicités et les services cloud. L'équipe Flutter de Google n'a pas encore essayé de répondre aux besoins des développeurs de jeux, bien que des efforts dans ce sens aient été faits par des tiers, notamment via le moteur de jeu Flame, qui a atteint son cap 1.0 en décembre dernier.
Sneath a déclaré que Flame visait un type de jeu plus exigeant que le Casual Games Toolkit : « Une grande partie de ce que nous essayons d'offrir dans le Casual Games Toolkit est complémentaire à Flame », a-t-il déclaré, soulignant des tâches telles que l'intégration avec le Game Center d'Apple ou les services de jeux Google Play.
« Les développeurs de jeux pourraient être intéressés par des choses comme les microtransactions ou les achats intégrés », a expliqué Sneath. « Ils pourraient avoir besoin d'écrans de démarrage, de classements et de choses comme ça. Donc, une grande partie de ce que nous faisons est d'essayer de fournir ces pièces qui se trouvent autour du moteur de jeu de base et de laisser les incroyables gens de Flame pouvoir continuer à construire ce noyau de moteur de jeu ».
Prêt pour la production sur toutes les plateformes de bureau
Linux et macOS sont devenus stables et incluent les fonctionnalités suivantes :
Menus en cascade et prise en charge de la barre de menus du système macOS
Vous pouvez désormais créer des barres de menus rendues par la plateforme sur macOS à l'aide du widget PlatformMenuBar, qui prend en charge l'insertion de menus de plateforme uniquement et contrôle ce qui apparaît dans les menus de l'application macOS.
Prise en charge complète de la saisie de texte internationale sur toutes les plateformes de bureau
La saisie de texte internationale, y compris pour les langues qui utilisent des éditeurs de méthode de saisie de texte (IME) telles que le chinois, le japonais et le coréen, est entièrement prise en charge sur les trois plateformes de bureau, y compris les méthodes de saisie tierces telles que Sogou et Google Japanese Input.
Accessibilité sur toutes les plateformes de bureau
Flutter pour Windows, macOS et Linux prennent en charge les services d'accessibilité tels que les lecteurs d'écran, la navigation accessible et les couleurs inversées.
Binaires universels par défaut sur macOS
Depuis Flutter 3, les applications de bureau Flutter macOS sont conçues comme des binaires universels, avec une prise en charge native des Mac Intel existants et des derniers appareils Apple Silicon d'Apple.
Dépréciation de Windows 7/8 pour le développement
Avec cette version, l'équipe a élevé la version Windows recommandée pour le développement vers Windows 10. Bien qu'elle ne bloque pas le développement sur les anciennes versions (Windows 7, Windows 8, Windows 8.1), ces versions ne sont plus prises en charge par Microsoft et l'équipe fournit des tests limités sur ces versions. Bien qu'elle continue d'offrir une assistance « au mieux » pour les anciennes versions, elle encourage à effectuer la mise à niveau. Et de préciser que : « Nous continuons à offrir une assistance pour les applications Flutter exécutées sur Windows 7 et Windows 8 ; cette modification n'affecte que l'environnement de développement recommandé ».
Mises à jour mobiles
Les mises à jour des plateformes mobiles comprennent les éléments suivants :
Support de téléphone pliable
La version Flutter 3 prend en charge les appareils mobiles pliables. Dans une collaboration dirigée par Microsoft, de nouvelles fonctionnalités et widgets vous permettent de créer des expériences dynamiques et agréables sur des appareils pliables.
Dans le cadre de ce travail, MediaQuery contient désormais une liste de DisplayFeatures, décrivant les limites et les états des éléments de l'appareil tels que les charnières, les plis et les découpes. De plus, le widget DisplayFeatureSubScreen positionne désormais son widget enfant sans chevaucher les limites de DisplayFeatures, et a déjà été intégré aux boîtes de dialogue et aux fenêtres contextuelles par défaut du framework, rendant Flutter conscient et réactif à ces éléments prêts à l'emploi.
Prise en charge du taux de rafraîchissement variable iOS
Flutter prend désormais en charge le taux de rafraîchissement variable sur les appareils iOS avec écrans ProMotion, y compris l'iPhone 13 Pro et l'iPad Pro. Sur ces appareils, les applications Flutter peuvent rendre à des taux de rafraîchissement atteignant 120 Hz, qui étaient auparavant limités à 60 Hz. Cela se traduit par une expérience plus fluide lors d'animations rapides telles que le défilement.
Versions iOS simplifiées
L'équipe a ajouté de nouvelles options à la commande flutter build ipa pour simplifier la publication de votre application iOS. Lorsque vous êtes prêt à distribuer sur TestFlight ou l'App Store, exécutez flutter build ipa pour créer une archive Xcode (fichier .xcarchive) et un ensemble d'applications (fichier .ipa). Vous pouvez éventuellement ajouter —-export-method ad hoc, —-export-method development ou —-export-method enterprise. Une fois le bundle d'applications créé, téléchargez-le sur Apple via l'application macOS Apple Transport ou sur la ligne de commande à l'aide de xcrun altool (exécutez man...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.