Actualités des produits

Jetpack WindowManager 1.5 est stable

Temps de lecture : 3 min
Francesco Romano
Ingénieur en relations avec les développeurs, Android

Nous avons le plaisir de vous annoncer que Jetpack WindowManager 1.5.0 est désormais stable.

Cette version s'appuie sur la solide base d'adaptabilité de WindowManager, ce qui facilite encore la création d'interfaces utilisateur adaptatives et soignées qui s'affichent correctement sur toutes les tailles d'écran. L'écosystème Android continuant de croître, les utilisateurs interagissent avec les applications sur une plus grande variété d'appareils que jamais : téléphones, appareils pliables, tablettes, écrans connectés, Chromebooks et même écrans de voiture en mode stationnement.

WindowManager 1.5 se concentre sur la fourniture de meilleurs outils pour cet environnement d'appareils diversifié.

Nouveautés de WindowManager 1.5

Cette version stable introduit de nouveaux points d'arrêt pour les très grands écrans, améliore l'API d'intégration d'activités et offre plus de flexibilité pour le calcul des métriques de fenêtre.

Nouvelles classes de taille de fenêtre : grande et très grande

La mise à jour 1.5 apporte deux nouvelles classes de taille de fenêtre de largeur : "Large" et "Extra-large".

Les classes de taille de fenêtre sont notre ensemble officiel et défini de points d'arrêt de fenêtre d'affichage qui vous aident à concevoir et à développer des mises en page adaptatives. Avec la version 1.5, nous étendons ces consignes aux écrans qui dépassent la taille des tablettes classiques.

Voici les nouveaux points d'arrêt de largeur :

  • Large : pour les largeurs comprises entre 1 200 et 1 600 dp
  • Très grande : pour les largeurs ≥ 1 600 dp
window_size_classes_width.png

Les différentes classes de taille de fenêtre en fonction de la largeur de l'écran. 

Pourquoi sont-elles importantes ?

À partir d'Android 16 QPR1 bêta 2, Android prend en charge les écrans connectés, ce qui permet aux utilisateurs de connecter un écran externe à leur appareil et de le transformer en outil de type ordinateur de bureau avec un grand écran.

ADB_5350_asset.gif

Téléphone connecté à un écran externe, avec une session de bureau sur l'écran externe. 

Avec cette nouvelle fonctionnalité, il est essentiel de fournir des conseils avisés pour inclure des écrans plus grands. 

Sur ces très grandes surfaces, il n'est pas toujours judicieux de simplement agrandir la mise en page développée d'une tablette. Par exemple, un client de messagerie peut facilement afficher deux volets (une boîte aux lettres et un message) dans la classe de taille de fenêtre "Développée". Mais sur un écran de bureau extra-large, le client de messagerie pourrait afficher élégamment trois ou même quatre volets : une boîte aux lettres, une liste de messages, le contenu complet du message et un panneau d'agenda/de tâches, le tout en même temps.

En fournissant des points d'arrêt officiels pour les très grandes tailles d'écran, WindowManager 1.5 vous donne un signal clair pour introduire des mises en page spécialement conçues pour une expérience de bureau productive et riche en informations.

Les classes de taille de fenêtre peuvent être calculées à l'aide de computeWindowSizeClass(), qui est une fonction d'extension de bibliothèque androidx.window.core.layout qui étend le type Set<WindowSizeClass>

Pour inclure les nouvelles classes de taille de fenêtre dans votre projet, il vous suffit d'appeler la fonction à partir de l'ensemble WindowSizeClass.BREAKPOINTS_V2 au lieu de WindowSizeClass.BREAKPOINTS_V1 :

val currentWindowMetrics =

    WindowMetricsCalculator.getOrCreate()

    .computeCurrentWindowMetrics(LocalContext.current)


val sizeClass = WindowSizeClass.BREAKPOINTS_V2

    .computeWindowSizeClass(currentWindowMetrics)


Appliquez ensuite la mise en page appropriée lorsque vous êtes sûr que votre application dispose d'au moins cet espace :

if(sizeClass.isWidthAtLeastBreakpoint(

    WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){

    ...

    // window is at least 1200 dp wide


}

Bibliothèques adaptatives

La bibliothèque Compose Material 3 Adaptive vous aide à créer des UI adaptatives qui s'adaptent automatiquement en fonction des configurations de fenêtre actuelles, comme les classes de taille de fenêtre ou les postures de l'appareil. 

La bonne nouvelle, c'est que la bibliothèque est déjà à jour avec les nouveaux points d'arrêt. À partir de la version 1.2 (actuellement en version Release Candidate), les fonctions de directive de structure de volet par défaut sont compatibles avec les classes de taille de fenêtre "Large" et "Très grande".

Il vous suffit d'activer cette fonctionnalité en déclarant dans votre fichier de compilation Gradle que vous souhaitez utiliser les nouveaux points d'arrêt :

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

Autres améliorations

  • Intégration d'activités : enregistrement et restauration automatiques : WindowManager peut désormais enregistrer et restaurer automatiquement l'état de vos écrans fractionnés d'intégration d'activités. Cela permet de préserver la mise en page de l'utilisateur lors de la recréation du processus, ce qui permet d'offrir une expérience plus stable et cohérente. Les développeurs n'ont plus besoin d'enregistrer et de restaurer l'état manuellement. Ils peuvent simplement activer l'enregistrement automatique en définissant la propriété EmbeddingConfiguration#isAutoSaveEmbeddingState.
  • Extension de WindowMetrics : vous pouvez désormais calculer WindowMetrics à partir d'un contexte d'application, et pas seulement d'un contexte d'activité. Cela offre plus de flexibilité pour accéder aux informations sur les fenêtres à partir de différentes parties de votre application.

Par où commencer ?

Pour commencer à utiliser les nouvelles classes de tailles "Grande" et "Très grande", ainsi que d'autres fonctionnalités de la version 1.5 dans vos projets Android, mettez à jour les dépendances de votre application dans build.gradle.kts vers la dernière version stable :

dependencies {
    implementation("androidx.window:window:1.5.0") 

    // or, if you're using the WindowManager testing library:

    testImplementation("androidx.window:window-testing:1.5.0")

}

WindowManager 1.5 est une nouvelle étape vers la création d'applications entièrement adaptatives qui s'exécutent sur tous les facteurs de forme Android. Consultez les notes de version officielles pour obtenir la liste complète des modifications et des corrections de bugs.

À vous de jouer !

Écrit par :

Lire la suite