Flutter 3.10

Par:
fredericmazue

ven, 12/05/2023 - 12:43

A l'occasion de sa grand-messe Google I/O 2023, Google a annoncé la disponibilité d'une nouvelle version de son framework de développement d'applications multi plates-formes : Flutter 3.10. Flutter 3.10, qui s'appuie sur Dart 3, inclut de nombreuses améliorations notamment pour le Web, le mobile, les graphiques, la sécurité. Voici quelques-unes de ces améliorations.

Material 3

La nouvelle bibliothèque Material correspond désormais à la dernière spécification Material Design. Les changements incluent de nouveaux composants et thèmes de composants, des visuels de composants mis à jour.

Flutter prend en charge le niveau SLSA 1

Flutter se compile désormais avec les niveaux de chaîne d'approvisionnement pour les artefacts logiciels (SLSA) niveau 1. Cela se traduit par la mise en œuvre de nombreuses fonctionnalités de sécurité, notamment :

  • Processus de construction scripté. Les scripts de build pour Flutter permettent désormais des builds automatisés sur des plateformes de build de confiance. S'appuyer sur une architecture protégée aide à prévenir la falsification d'artefacts, ce qui améliore la sécurité de la chaîne d'approvisionnement.
  • Approbation multipartite avec journal d'audit. Les flux de travail Flutter ne s'exécutent qu'après approbation. Toutes les exécutions créent des enregistrements de journal auditables. Ces modifications garantissent que personne ne peut introduire de modifications entre le code source et la génération d'artefacts.
  • Origine . Les versions bêta et stables sont désormais construites avec provenance . Cela signifie que des sources fiables avec le contenu attendu ont construit les artefacts de version du framework. Chaque version publie des liens pour afficher et vérifier la provenance de l'archive SDK.

Web

En ce qui concerne les applications Web, Flutter 3.10 améliore le temps de chargement et réduit la taille de CanvasKit sur tous les navigateurs. A remarquer : Vous pouvez désormais servir des applications Web Flutter à partir d'un élément spécifique d'une page. Avant cette version, vos applications pouvaient soit remplir tout le corps de la page, soit s'afficher dans une balise frame.

Performances

Dans Flutter 3.7, Google avait déplacé le chargement des images locales du thread de la plate-forme vers le thread Dart pour éviter de retarder les événements vsync du thread de la plate-forme. Cependant, les utilisateurs ont remarqué que ce travail supplémentaire sur le thread Dart provoquait également des problèmes. Dans cette version, Goolge a déplacé l'ouverture et le décodage des images locales du thread Dart vers un thread d'arrière-plan. Ce changement élimine les longues pauses potentielles sur les écrans avec beaucoup d'images locales, tout en évitant de retarder les événements vsync. Dans ses tests locaux et ses benchmarks automatisés, Google constate que ce changement a réduit de moitié le temps de chargement de plusieurs images simultanées.

Du côté d'iOS, Google a apporté des améliorations la latence de démarrage de 100 ms, soit environ 30 à 50 % dans une grande application de production.

Enfin la taille de Flutter compressé a été réduite de 30 Ko.

De meilleures API d'images

Les développeurs apprécieront l'arrivée de la possibilité de décoder les images APNG. Les images APNG peuvent être chargées avec les API de chargement d'images existantes de Flutter.

Une nouvelle méthode instantiateImageCodecWithSize est disponible. Elle prend en charge le cas d'utilisation du chargement d'une image qui remplit ces trois conditions :

  • un rapport d'aspect inconnu au moment du chargement
  • une contrainte de boîte englobante
  • une contrainte originale de format d'image

Un exemple serait lorsqu'une application essaie d'afficher une image à partir d'un pool de possibilités chargé à partir du réseau.