Jetpack Compose pour la XR
Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
12 février 2025 | - | - | - | 1.0.0-alpha02 |
Déclarer des dépendances
Pour ajouter une dépendance à XR Compose, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle
de votre application ou de votre module :
Groovy
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha02" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha02" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha02") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha02") }
Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Version 1.0
Version 1.0.0-alpha02
12 février 2025
Publication d'androidx.xr.compose:compose:1.0.0-alpha02
et d'androidx.xr.compose:compose-testing:1.0.0-alpha02
. La version 1.0.0-alpha02 contient ces commits.
Nouvelles fonctionnalités
- Le panneau d'activités peut désormais masquer son contenu lorsqu'une boîte de dialogue spatiale est activée.
- L'API
Orbiter
est désormais utilisable dans les contextesSubspaceComposable
et associe les orbiteurs à leur parent composableSubspaceLayout
le plus proche. - Ajout de
LayoutCoordinatesAwareModifierNode
pour permettre l'utilisation de modificateurs personnalisés basés sur le positionnement. - Ajout de méthodes de cycle de vie d'attachement/de détachement à
SubspaceModifier.Node
. - Ajout de
scaleWithDistance
au modificateur mobile. LorsquescaleWithDistance
est activé, l'élément d'espace sous-jacent déplacé augmente ou diminue. Il conserve également toute échelle explicite qu'il avait avant le mouvement.
Modifications apportées à l'API
SessionCallbackProvider
a été supprimé et remplacé parSpatialCapabilities
.
Autres modifications
- Réduction de
minSDK
à 24. Toutes les API Jetpack XR continuent de nécessiter l'API 34 au moment de l'exécution. - Les constructeurs
Orbiter
EdgeOffset.inner
,EdgeOffset.outer
etEdgeOffset.overlap
ne sont plus des méthodes@Composable
, ce qui leur permet d'être utilisés dans des contextes non composables. - Mise à jour des niveaux d'élévation spatiale pour qu'ils correspondent aux dernières spécifications de l'expérience utilisateur.
- Implémentez l'interface
SubspaceSemanticsInfo
dansMeasurableLayout
. - Changement de nom :
SubspaceModifierElement
devientSubspaceModifierNodeElement
.
Corrections de bugs
- Correctifs pour stabiliser la commande
SubspaceModifier
.SubspaceModifier
devrait se comporter de manière plus fiable. Les modificateurs de décalage, de rotation, de mise à l'échelle, de mobilité et de redimensionnement devraient désormais être utilisables dans n'importe quel ordre.
Version 1.0.0-alpha01
12 décembre 2024
Publication d'androidx.xr.compose:compose-*1.0.0-alpha01
.
Fonctionnalités de la version initiale
Version initiale de Jetpack Compose pour XR destinée aux développeurs. Utilisez des concepts Compose familiers tels que les lignes et les colonnes pour créer des mises en page d'interface utilisateur spatiales dans la réalité XR, que vous portiez une application 2D existante vers la réalité XR ou que vous créiez une application XR à partir de zéro. Cette bibliothèque fournit des composables spatiaux et sous-espaces, tels que des panneaux et des orbiteurs spatiaux, qui vous permettent de placer votre UI 2D Compose ou basée sur Views existante dans une mise en page spatiale. Il introduit le composable de sous-espace Volume, qui vous permet de placer des entités SceneCore, telles que des modèles 3D, par rapport à votre UI. Pour en savoir plus, consultez ce guide du développeur:
Subspace
: ce composable peut être placé n'importe où dans la hiérarchie de l'UI de votre application. Vous pouvez ainsi gérer les mises en page pour l'UI 2D et l'UI spatiale sans perdre de contexte entre les fichiers. Cela permet de partager plus facilement des éléments tels que l'architecture d'application existante entre la RA et d'autres facteurs de forme, sans avoir à hisser l'état dans l'ensemble de l'arborescence de l'UI ni à réarchitecturer votre application.SpatialPanel: un panneau spatial est un composable de sous-espace qui vous permet d'afficher le contenu de l'application. Par exemple, vous pouvez afficher la lecture vidéo, des images fixes ou tout autre contenu dans un panneau spatial.
Orbiteur: un orbiteur est un composant d'UI spatial. Il est conçu pour être associé à un panneau spatial correspondant et contient des éléments de navigation et d'action contextuelle liés à ce panneau spatial. Par exemple, si vous avez créé un panneau spatial pour afficher du contenu vidéo, vous pouvez ajouter des commandes de lecture vidéo dans un orbiteur.
Volume: placez les entités SceneCore, telles que les modèles 3D, par rapport à votre UI.
Mise en page spatiale : vous pouvez créer plusieurs panneaux spatiaux et les placer dans une mise en page spatiale à l'aide de
SpatialRow
,SpatialColumn
,SpatialBox
etSpatialLayoutSpacer
. Utilisez desSubspaceModifier
pour personnaliser votre mise en page.Composants d'interface utilisateur spatiale: ces éléments peuvent être réutilisés dans votre interface utilisateur 2D. Leurs attributs spatiaux ne seront visibles que lorsque les fonctionnalités spatiales seront activées.
SpatialDialog
: le panneau recule légèrement en profondeur pour afficher une boîte de dialogue surélevée.SpatialPopUp
: le panneau est légèrement repoussé en arrière dans la profondeur de champ pour afficher un pop-up surélevé.SpatialElevation
:SpatialElevationLevel
peut être défini pour ajouter l'altitude.
SpatialCapabilities: les fonctionnalités spatiales peuvent changer lorsque les utilisateurs interagissent avec votre application ou le système, ou même être modifiées par votre application elle-même (par exemple, en passant à l'espace "Home" ou "Full"). Pour éviter les problèmes, votre application doit rechercher
LocalSpatialCapabilities.current
pour déterminer quelles API sont compatibles avec l'environnement actuel.isSpatialUiEnabled
: Éléments d'interface utilisateur spatialisée (par exemple, SpatialPanel)isContent3dEnabled
: Objets 3DisAppEnvironmentEnabled
: EnvironnementisPassthroughControlEnabled
: Indique si l'application peut contrôler l'état de passthroughisSpatialAudioEnabled
: Son spatialisé
Problèmes connus
- Actuellement, un SDK minimal de 30 est requis pour utiliser Jetpack Compose pour XR. Pour contourner ce problème, vous pouvez ajouter l'entrée de fichier manifeste
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
suivante afin de pouvoir compiler et exécuter avec un SDK minimal de 23. - Les applications Jetpack XR nécessitent actuellement de demander l'autorisation
android.permission.SCENE_UNDERSTANDING
dans le fichier AndroidManifest. - Lorsqu'une application se lance directement dans l'espace complet à l'aide de la propriété
PROPERTY_XR_ACTIVITY_START_MODE
dans son fichier manifeste, les activités/applications sont initialement ouvertes dans l'espace d'accueil avant de passer à l'espace complet. - Les glTF dans les composables de volume peuvent initialement clignoter au mauvais endroit.
- L'utilisation d'un SpatialDialog dans un panneau qui a été déplacé de manière importante entraînera un décalage du contenu dans la mauvaise direction.