
cette version améliore le support de Material You, les performances et la gestion de la mémoire
Google a annoncé mercredi la disponibilité générale de Flutter 3.7 lors de Flutter Forward, un événement destiné aux développeurs. L'entreprise a profité de l'occasion pour évoquer l'avenir de son framework de développement d'applications multiplateformes. Après des débuts modestes sur Android et iOS, Flutter peut maintenant vous aider à à créer des applications pour les mobiles, les ordinateurs de bureau, le Web et bien plus encore, le tout à partir d'une seule base de code Dart. Cette nouvelle version de Flutter prend en charge davantage de widgets et de menus Material You (Material3), corrige quelques bogues et améliore les performances.
Le SDK Flutter a atteint son jalon 1.0 le 4 décembre 2018. Selon Tim Sneath, qui dirige la gestion des produits Dart et Flutter, a déclaré qu'en mai 2022, il y avait 500 000 applications construites à l'aide de Flutter, soit deux fois plus qu'un an auparavant. Lors de l'événement de mercredi, qui s'est tenu à Nairobi, au Kenya, Sneath a déclaré que ce nombre est désormais passé à 700 000. Et le nombre de paquets disponibles via pub.dev a dépassé les 32 000, contre 23 000 en mai dernier. Google estime que Flutter a attiré 5 millions de développeurs et selon GitHub, il est l'un des trois principaux projets open source en fonction du nombre de contributeurs.
Quand d'autres mesurent de telles choses, Flutter semble toujours être plutôt populaire. Selon les analystes, Flutter pourrait le devenir davantage, car le SDK s'étend à de nouvelles plateformes matérielles telles que RISC-V et ARM64 pour Windows et s'attaque aux problèmes de performance, ce qui le rend mieux adapté aux jeux et à d'autres applications exigeantes en matière de calcul. Enfin, il apprend à s'adapter au Web et à d'autres langages de programmation. La version 3.7 de Flutter améliore davantage le framework avec l'ajout de nouvelles fonctionnalités remarquables. Voici ci-dessous les points forts de Flutter 3.7 :
Prise en charge améliorée de Material 3
La prise en charge de Material 3 a été considérablement améliorée dans la version 3.7 avec la migration des widgets suivants :
- Badge
- Barre d'application inférieure
- Boutons pleins et tons pleins
- SegmentedButton
- Case à cocher
- Séparateur
- Menus
- DropdownMenu
- Tiroir et tiroir de navigation
- Indicateur de progression
- Boutons radio
- Slider
- SnackBar
- TabBar
- Champs de texte et InputDecorator
- Bannière
Pour utiliser ces nouvelles fonctionnalités, il suffit d'activer l'indicateur useMaterial3 dans le widget ThemeData de votre application. Selon l'équipe, pour tirer pleinement parti du support de Material3, vous aurez besoin d'un schéma de couleurs M3 complet. Vous pouvez fournir le vôtre, utiliser le nouvel outil de création de thèmes ou Flutter peut en générer un pour vous à partir d'une seule couleur de base en utilisant le paramètre colorSchemeSeed du constructeur de ThemeData.
Barres de menu et menus en cascade
Flutter peut désormais créer des barres de menu et des menus contextuels en cascade. Pour macOS, créez une barre de menu à l'aide du widget PlatformMenuBar, qui définit les barres de menu natives de la plateforme dont le rendu est assuré par macOS et non Flutter. Et, pour toutes les plateformes, vous pouvez définir un menu Material Design qui fournit des barres de menu en cascade (MenuBar), ou des menus en cascade autonomes déclenchés par un autre élément de l'interface utilisateur (MenuAnchor).
Ces menus sont entièrement personnalisables, et les éléments de menu peuvent être des widgets personnalisés, ou vous pouvez utiliser les nouveaux widgets d'éléments de menu (MenuItemButton, SubmenuButton).
Aperçu du moteur de rendu Impeller
L'équipe annonce que le nouveau moteur de rendu Impeller est prêt à être testé sur iOS dans le canal stable. « Nous pensons que les performances d'Impeller atteindront ou dépasseront celles du moteur de rendu Skia pour la plupart des applications, et en ce qui concerne la fidélité, Impeller implémente tout sauf un petit nombre de cas particuliers rarement utilisés. Nous prévoyons de faire d'Impeller le moteur de rendu par défaut sur iOS dans une prochaine version stable, alors continuez à envoyer vos commentaires sur Impeller sur GitHub », a déclaré l'équipe dans un billet de blogue sur les fonctionnalités de Flutter 3.7.
« Bien que nous soyons de plus en plus convaincus qu'Impeller sur iOS répondra aux besoins de rendu de presque toutes les applications Flutter existantes, il reste encore quelques lacunes dans la couverture des API. Le petit nombre de lacunes restantes est répertorié sur le wiki Flutter. Les utilisateurs peuvent également remarquer des différences visuelles mineures dans le rendu entre Skia et Impeller. Ces différences mineures peuvent être des bogues, alors n'hésitez pas à signaler les problèmes. Nos progrès sur Impeller ont été grandement accélérés par les contributions de la communauté », a-t-elle ajouté.
Validation de la version iOS
Lorsque vous lancez une application iOS, une liste de contrôle des paramètres à mettre à jour garantit que votre application est prête à être soumise à l'App Store. La commande flutter build ipa valide désormais certains de ces paramètres et vous informe si des modifications doivent être apportées à votre application avant sa sortie.
Mises à jour de DevTools
Cette version comporte plusieurs nouvelles fonctionnalités d'outils et des améliorations générales à tester. L'outil de débogage de la mémoire de DevTools a subi une refonte complète. Il existe trois nouveaux onglets de fonctionnalités, Profil, Trace et Diff, qui prennent en charge toutes les fonctionnalités de débogage de la mémoire précédemment prises en charge et en ajoutent d'autres pour faciliter le débogage. Selon l'équipe Flutter, parmi les nouvelles fonctionnalités, il y a la possibilité d'analyser l'allocation de mémoire actuelle de votre application par classe et par type de mémoire.
Cela permet également de rechercher les chemins de code qui allouent de la mémoire pour un ensemble de classes au moment de l'exécution, et de différencier les instantanés de mémoire pour comprendre la gestion de la mémoire entre deux points dans le temps. La page Performances comporte en outre quelques nouveautés notables. Un nouvel onglet Analyse de trame en haut de la page Performances fournit des informations sur la trame Flutter sélectionnée. Il peut s'agir de suggestions sur la façon de suivre plus en détail les parties coûteuses de la trame Flutter, ou d'avertissements sur les opérations coûteuses détectées dans la trame Flutter.
Selon l'équipe, ce ne sont que quelques points saillants, mais cette version contient plusieurs corrections de bogues et améliorations au-delà des fonctionnalités mentionnées ici, y compris des corrections de bogues importantes pour l'inspecteur, le profileur de réseau et le profileur de CPU.
Menus contextuels personnalisés
Vous pouvez désormais créer des menus contextuels personnalisés n'importe où dans une application Flutter. Vous pouvez également les utiliser pour personnaliser les menus contextuels intégrés. Par exemple, vous pouvez ajouter un bouton "Envoyer un e-mail" à la barre d'outils de sélection de texte par défaut qui s'affiche lorsque l'utilisateur a sélectionné une adresse e-mail. Voir le paramètre contextMenuBuilder, qui a été ajouté aux widgets existants qui affichent un menu contextuel par défaut, comme TextField. Vous pouvez renvoyer n'importe quel widget de contextMenuBuilder, y compris modifier le menu contextuel par défaut adapté à la plateforme.
Cette nouvelle fonctionnalité fonctionne également en dehors de la sélection de texte. Vous pouvez, par exemple, créer un widget "Image" qui affiche un bouton "Enregistrer" en cas de clic droit ou de pression longue. Utilisez ContextMenuController pour afficher le menu contextuel par défaut de la plateforme actuelle, ou un menu personnalisé, n'importe où dans votre application.
Améliorations du défilement
Plusieurs mises à jour relatives au défilement ont été intégrées à cette version : amélioration et raffinement des interactions avec le trackpad, nouveaux widgets tels que Scrollbars et DraggableScrollableSheet, et amélioration de la gestion de la sélection de texte dans les contextes de défilement. En particulier, les applications macOS bénéficieront désormais d'une plus grande fidélité grâce à l'ajout d'une nouvelle physique de défilement correspondant à celle de la plateforme de bureau. Les nouveaux widgets AnimatedGrid et SliverAnimatedGrid animent les éléments ajoutés (ou retirés) d'une liste.
Enfin, l'équipe a corrigé une régression dans le constructeur de plusieurs widgets de défilement, comme [CListView[/C]. Lors de la migration NNBD du framework Flutter, itemBuilder, qui permet aux utilisateurs de fournir des...
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.