Mobile et appareils

Jetpack Compose 1.13 ajoute des mises en page adaptatives et AppState

L'Android Developer Summit révèle Compose 1.13 avec Grid, Flexbox et Jetpack AppState pour unifier l'interface utilisateur et l'architecture sur les smartphones, les appareils pliables et les ordinateurs de bureau.

Illustration d'un appareil se transformant entre les formes tablette, téléphone et ordinateur portable avec des connexions de données.
Illustration générée pour cet article

Traduit automatiquement depuis l'original anglais.

Lors de l'Android Developer Summit du 4 novembre 2026, Google a annoncé des mises à jour majeures de Jetpack Compose, mettant l'accent sur le développement adaptatif pour un écosystème multi-appareils. Cette version introduit de nouvelles primitives de mise en page, des outils de gestion de l'état architectural et une prise en charge améliorée des entrées pour soutenir des appareils allant des smartphones et des téléphones pliables aux écrans embarqués et au nouveau format Googlebook.

Ce qui s'est passé

L'écosystème Android couvre désormais une grande variété de tailles d'écran et de modèles d'interaction, faisant du développement adaptatif une exigence fondamentale plutôt qu'une amélioration optionnelle. Pour répondre à cela, l'équipe a présenté Jetpack Compose comme la norme unifiée pour la création d'interfaces utilisateur, éloignant les développeurs du système View hérité et fragmenté. L'objectif est de fournir une cible de développement unique qui réduit la friction liée à la maintenance de bases de code distinctes pour différents formats tout en garantissant que les applications restent cohérentes lors du redimensionnement des fenêtres ou du pliage des écrans.

Une partie majeure de l'annonce portait sur l'extension de Compose au-delà de la simple couche visuelle vers l'architecture de l'application. L'équipe a introduit Jetpack AppState, actuellement en alpha, qui intègre le système d'état basé sur des instantanés (snapshots) de Compose dans la couche de données. Cela permet aux développeurs de partager un état observable entre les activités, les services en arrière-plan, les widgets et les App Functions. De plus, la prochaine version stable de Compose 1.13 inclut une prise en charge intégrée des mises en page adaptatives grâce aux nouveaux composants Grid et Flexbox, ainsi que des améliorations visuelles telles que Progressive Blur et Formatted Text.

Les systèmes de navigation et de saisie ont également reçu des mises à niveau substantielles pour gérer des scénarios complexes multi-appareils. Jetpack Navigation 3, version 1.2, offre désormais des liens profonds typés (type-safe deep linking) utilisant Kotlin Serialization, permettant aux développeurs de mapper directement les URI sur des clés de navigation fortement typées. Du côté de la saisie, le système d'entrée par couches de Compose prend désormais en charge les pavés tactiles, les souris et les contrôles physiques, permettant des interactions fluides sur des appareils de classe ordinateur de bureau comme le Googlebook. Pour faciliter l'implémentation, Google a publié des compétences Android mises à jour pour les agents de codage, aidant à automatiser la transformation de mises en page mobiles compactes en expériences réactives multi-panneaux.

Comment cela fonctionne

Jetpack AppState intègre le modèle d'état réactif de Compose dans l'architecture globale de l'application. Il introduit deux composants principaux : Transform et StateStore. Transform permet aux développeurs de dériver un état réactif à partir des entrées existantes State et Flow en utilisant le suivi automatique des lectures et le flux de contrôle standard de Kotlin. Cela élimine le besoin de boilerplate complexe lors de la combinaison de plusieurs sources de données. StateStore agit comme un conteneur indexé qui conserve l'état observable, le rendant accessible à travers différentes parties de l'application, y compris les services en arrière-plan et les widgets. Il prend également en charge une persistance facultative via DataStore, assurant la cohérence de l'état même lorsque l'application n'est pas au premier plan.

Pour l'adaptation des mises en page, Compose 1.13 introduit des composants natifs Grid et Flexbox. Ces primitives permettent aux interfaces de refluider dynamiquement le contenu en fonction de l'espace écran disponible, plutôt que de simplement étirer les éléments. Combinés aux API WindowManager, ces composants permettent aux applications de passer sans heurt des vues mobiles à panneau unique aux mises en page multi-panneaux pour ordinateurs de bureau ou tablettes. La nouvelle implémentation BasicTextField utilise une architecture pilotée par tampon (buffer-driven) et TextFieldState pour gérer l'édition de texte. Cette refonte résout les conditions de concurrence (race conditions) de l'éditeur de méthode de saisie (IME) et prend en charge le formatage de texte riche, offrant une expérience d'édition plus fiable sur des appareils dotés de méthodes de saisie différentes.

Détails clés

  • La version stable de Compose 1.13 inclut les mises en page Grid et Flexbox intégrées, Progressive Blur et la prise en charge de Formatted Text.
  • Jetpack AppState (alpha) introduit Transform pour la dérivation d'état réactif et StateStore pour le partage d'état entre les activités et les services.
  • Jetpack Navigation 3 (version 1.2) ajoute des liens profonds typés utilisant Kotlin Serialization et la génération synthétique de pile de retour (back stack).
  • BasicTextField a été réécrit avec une architecture pilotée par tampon pour éliminer les conditions de concurrence IME et prendre en charge le texte riche.
  • Les nouvelles compétences Android pour les agents de codage incluent Adaptive, les performances Compose, la migration XML vers Compose et les compétences Ink.
  • La gestion des entrées s'étend désormais aux pavés tactiles, aux souris et aux contrôles physiques, prenant en charge les interactions de classe ordinateur de bureau sur des appareils comme le Googlebook.

Pourquoi c'est important

Pour les ingénieurs logiciels développant des applications Android, ces mises à jour réduisent la complexité de la prise en charge de matériel diversifié. Auparavant, adapter une application pour les appareils pliables ou les tablettes nécessitait souvent des ajustements manuels de mise en page et une logique fragile de gestion d'état. Avec les composants natifs Grid et Flexbox, les développeurs peuvent définir des mises en page réactives de manière déclarative, réduisant la quantité de code personnalisé nécessaire pour gérer les changements de taille de fenêtre. Cela conduit à des bases de code plus maintenables et moins de bugs visuels lorsque les utilisateurs passent d'un appareil à l'autre.

L'introduction de Jetpack AppState répond à un point de douleur courant dans le développement Android à grande échelle : la synchronisation de l'état. En apportant le système d'instantanés de Compose à la couche d'architecture, les équipes peuvent garantir que l'état de l'interface utilisateur reste cohérent à travers différents points d'entrée, tels que les widgets ou les services en arrière-plan. Cela simplifie le flux de données et réduit le risque de perte d'état lors des changements de configuration ou de la mort du processus. De plus, la prise en charge améliorée des entrées et la navigation typée rendent réalisable la création de véritables expériences de classe ordinateur de bureau sur des formats émergents comme le Googlebook sans réinventer les schémas d'interaction fondamentaux.

Ce que vous pouvez faire

  • Mettez à jour les dépendances de votre projet pour préparer la version stable de Compose 1.13 et expérimenter avec les nouvelles mises en page Grid et Flexbox.
  • Explorez la bibliothèque alpha Jetpack AppState pour refactoriser les pipelines d'état complexes, en utilisant Transform pour dériver l'état à partir de Flows.
  • Migrez vers Jetpack Navigation 3 version 1.2 pour implémenter des liens profonds typés utilisant Kotlin Serialization pour une navigation plus robuste.
  • Testez la gestion des entrées de votre application avec des pavés tactiles et des souris pour vous assurer que les états de survol (hover states) et les cycles de vie des pointeurs fonctionnent correctement sur les grands écrans.
  • Utilisez la nouvelle compétence Android Adaptive dans Android Studio ou via l'Android CLI pour aider à refactoriser les mises en page existantes en conceptions multi-panneaux.
  • Regardez les sessions à la demande de l'Android Developer Summit, en particulier celles sur le profilage Perfetto et le traçage de recomposition, pour optimiser les performances.
  • #android
  • #jetpack compose
  • #mobile development
  • #ui engineering
  • #kotlin

Outils de la Boutique Bytechap

$79

BandBridge

Environnement de travail de bureau multiplateforme pour le développement d'appareils portables.

Continuer la lecture

Tous les articles