AccueilActualités informatiqueMultiplateforme : Flutter 2.8 et Dart 2.15 offrent plus de puissance aux...

Multiplateforme : Flutter 2.8 et Dart 2.15 offrent plus de puissance aux applications mobiles

Google a publié Flutter 2.8. Parmi les nombreuses améliorations et nouveautés apportées à la version du framework multiplateforme ainsi qu’à la mise à jour du langage de programmation Dart 2.15 présentée en même temps, c’est surtout l’amélioration des performances qui joue un rôle central. Selon l’annonce de l’équipe Flutter, la mise à jour devrait également permettre aux applications mobiles déjà existantes de bénéficier de temps de démarrage plus courts et d’une consommation de mémoire réduite.

Sommaire

Dans le but de réduire la latence au démarrage des applications, l’équipe Flutter s’est penchée sur plusieurs aspects, notamment le gestionnaire de polices par défaut et l’interaction avec le Garbage Collection (GC) de la VM Dart. Jusqu’à présent, la configuration du gestionnaire de polices semblait être un goulot d’étranglement lors de l’installation de Dart Isolate les deux processus s’exécutent désormais simultanément (concurrent). En outre, Flutter 2.8 évite les cycles GC inutiles de la VM Dart pendant la séquence de démarrage d’une application. Sous Android, par exemple, le framework n’avertit la Dart VM avant le rendu de la première trame qu’en cas de messages de goulot d’étranglement de la mémoire de TRIM_LEVEL_RUNNING_CRITICAL ou plus.

Sur les appareils disposant de peu de ressources mémoire, le chargement prématuré du code AOT du service Isolate de la VM Dart pouvait également s’avérer problématique jusqu’à présent. Au moins pour Android, Flutter 2.8 permet désormais un chargement plus adapté du service, qui est désormais disponible dans un bundle séparé. De même, le Platform Thread ne doit plus attendre à l’avenir la création de Platform Views. Pour une application telle que Google Pay, les mesures citées devraient permettre de réduire de moitié les temps de démarrage sur les matériels Android les plus faibles, tandis qu’une amélioration d’environ dix pour cent serait tout de même constatée sur les appareils plus performants.

Lire aussi

Dart 2.15 apporte également une contribution importante aux améliorations de performance promises dans l’annonce, grâce à une révision du modèle de concordance. Afin d’éviter les problèmes typiques de mémoire partagée comme les conditions de course, Dart s’appuie sur des unités d’exécution indépendantes les unes des autres, les isolats. Avec la nouvelle version, l’équipe Dart introduit en outre les Isolate Groups. Comme les isolats contenus dans un tel groupe partagent différentes structures de données internes pour le programme en cours, chaque élément individuel peut être allégé. Cela permet d’accélérer les temps de démarrage et de réduire les besoins en mémoire des différentes unités d’exécution – jusqu’à un facteur 100 selon le blog.

La syntaxe de Dart 2.15 autorise en outre désormais les destructeurs. Jusqu’à présent, les développeurs ne disposaient que de pointeurs de fonctions lorsqu’ils travaillaient avec les bibliothèques centrales de Dart. Cette fonctionnalité utile manquait par exemple lors de la construction de Flutter UIs. Les Contructor Tear-offs permettront à l’avenir, entre autres, de créer plus facilement des Column Widgets, comme le montre l’exemple suivant avec l’interface Dart. Text-montre l’exemple des widgets :

class FruitWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Column(
        children: ['Apple', 'Orange'].map(Text.new).toList());
  }
}

Un aperçu complet de tous les changements ainsi que plus de détails sur les nouvelles versions sont disponibles dans les billets de blog respectifs du framework multiplateforme Flutter et du langage de programmation Dart.

Plus d'articles