Actualités sur les produits

Jetpack WindowManager 1.5 est stable

Temps de lecture : 2 min
Voir le profil de Francesco Romano
Francesco Romano Ingénieur Developer Relations, Android

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

Cette version s'appuie sur les solides bases d'adaptabilité de WindowManager, ce qui facilite encore plus la création d'interfaces utilisateur soignées et adaptatives qui s'affichent parfaitement sur toutes les tailles d'écran. L'écosystème Android ne cesse de se développer, et les utilisateurs interagissent avec les applications sur une variété d'appareils plus vaste que jamais : téléphones, pliables, tablettes, écrans connectés, Chromebooks et même écrans de voiture en mode stationnement.

WindowManager 1.5 se concentre sur l'amélioration des 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 calculer les métriques de fenêtre.

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

La principale nouveauté de la version 1.5 est l'ajout de deux nouvelles classes de taille de fenêtre en largeur : grande et très grande.

Les classes de taille de fenêtre sont notre ensemble officiel de points d'arrêt de fenêtre d'affichage définis qui vous aident à concevoir et à développer des mises en page adaptatives. Avec la version 1.5, nous étendons ces conseils aux écrans qui vont au-delà des tablettes standards.

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

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

Différentes classes de taille de fenêtre en fonction de la largeur d'affichage. 

Pourquoi sont-ils importants ?

À partir d'Android 16 QPR1 bêta 2, Android est compatible avec les écrans connectés, ce qui permet aux utilisateurs de connecter un écran externe à leur appareil et de le transformer en un outil semblable à un ordinateur 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 grands écrans, le simple fait d'agrandir la mise en page étendue d'une tablette n'offre pas toujours la meilleure expérience utilisateur. Par exemple, un client de messagerie peut afficher confortablement deux volets (une boîte aux lettres et un message) dans la classe de taille de fenêtre "Grande". En revanche, sur un écran d'ordinateur de bureau très grand, le client de messagerie peut afficher élégamment trois ou même quatre volets : par exemple, 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 grands écrans, 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 la 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)


Ensuite, appliquez 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 adaptative Compose Material 3 vous aide à créer des interfaces utilisateur 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 phase de version candidate), les fonctions de directive d'échafaudage de volet par défaut sont compatibles avec les classes de taille de fenêtre Large et Extra-large.

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 se traduit par 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.
  • WindowMetrics étendu : 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 de la fenêtre à partir de différentes parties de votre application.

Premiers pas

Pour commencer à utiliser les nouvelles classes de taille "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 !

Written by:
Continuer la lecture