De meilleures performances pour Jetpack Compose 1.6

Par:
fredericmazue

mar, 30/01/2024 - 16:01

JetPack Compose, ou plus simplement Compose, est une boite à outils proposée par Google, permettant créer une interface utilisateur Android native. Compose est basé sur un modèle de programmation déclaratif. Vous pouvez donc simplement décrire l'apparence de votre interface utilisateur. Compose se charge du reste. Compose est construit avec le langage Kotlin. En tant que tel, il est totalement interopérable avec le langage de programmation Java et dispose d’un accès direct à toutes les API Android et Jetpack. Google vient de publier JetPack Compose 1.6.

Pour cette nouvelle version, Google insiste beaucoup sur l'amélioration des performances. Google assure constater dans ses tests une amélioration d'environ 20% des performances de défilement et une amélioration d'environ 12% du temps de démarrage, améliorations qui s'ajoutent à celles de la version d'août 23 du framework. Comme pour cette version, la plupart des applications bénéficieront de ces avantages simplement en effectuant une mise à niveau vers la dernière version, sans qu'aucune autre modification de code ne soit nécessaire, souligne Google.

L'amélioration des performances de défilement et du temps de démarrage provient d'un travail sur les allocations de mémoire et l'initialisation paresseuse, pour garantir que le framework ne fonctionne que lorsqu'il le faut. Ces améliorations sont visibles dans toutes les API de Compose, en particulier dans les API de texte, cliquables, paresseuses et graphiques, y compris les vecteurs.

Un compilateur amélioré qui génère un meilleur code

Google met encore un avant des améliorations apportées au compilateur. Ainsi le compilateur Compose 1.5.5 introduit une nouvelle option de compilateur pour fournir un fichier de configuration pour ce que votre application considère comme stable. Cette option vous permet de marquer n'importe quelle classe comme stable, y compris vos propres modules, les classes de bibliothèque externes et les classes de bibliothèque standard, sans avoir à modifier ces modules ou à les envelopper dans une classe wrapper stable.

Le code généré par le plugin du compilateur Compose a également été amélioré. De petits ajustements qui peuvent conduire à d'importantes améliorations des performances car le code est généré dans chaque fonction composable, souligne Google. Le compilateur Compose suit les objets d'état Compose pour savoir quels composables recomposer en cas de changement de valeur. Cependant, de nombreuses valeurs d'état ne sont lues qu'une seule fois, et certaines valeurs d'état ne sont jamais lues du tout mais changent quand même fréquemment ! Cette mise à jour permet au compilateur d'ignorer le suivi lorsqu'il n'est pas nécessaire.