Jetpack Compose for XR
| 最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| 2026 年 9 月 23 日 | - | - | 1.0.0-beta01 | - |
依存関係の宣言
XR Compose への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.xr.compose:compose:1.0.0-beta01" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-beta01") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-beta01") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.0
バージョン 1.0.0-beta01
2026 年 9 月 23 日
androidx.xr.compose:compose:1.0.0-beta01 と androidx.xr.compose:compose-testing:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 にはこれらの commit が含まれています。
API の変更
- 非推奨の
DragPolicyを削除しました。代わりにSubspaceModifier.movable()を使用してください。(I108d4) - 非推奨の
ResizePolicyと、SpatialPanelおよびSpatialExternalSurfaceでのその使用を削除しました。非推奨のSubspaceModifier.resizable関数を削除します。代わりに、新しいResizePolicyを使用して新しいSubspaceModifier.resizableを使用してください。(I59e6b) - ピッチ トラッキングを個別に有効または無効にできる
isPitchUpdateEnabledパラメータを追加しました。(Ie9e86) pitchLimitsの null 可能性を削除し、PitchLimits.UNCONSTRAINEDの名前をPitchLimits.FullRangeに変更しました。(I0154f)ExposedDropdownMenuがメンバーではなくExposedDropdownMenuBoxScopeの拡張関数になりました。新しいインポートでコードを更新する必要がある場合があります。(Ie8a65)- 非推奨の
SurfaceProtectionクラスを削除しました。代わりにSpatialExternalSurfaceProtectionを使用してください。(Iab2c6) OrbiterPoseProviderを受け取る Orbiter 関数は、SpatialAlignmentを使用する関数に置き換えられ、非推奨になりました。(I4d12b)SpatialActivityPanelでは、埋め込みアクティビティを起動して管理するためにSpatialActivityPanelController(rememberSpatialActivityPanelControllerを使用してインスタンス化)が必要になりました。(Id25c6)rotateToLookAtUserからupDirectionパラメータを削除し、回転制約パラメータ(isYawUpdateEnabledとpitchLimits)を追加しました。(I1370a)
バグの修正
InteractionPolicyに関するさまざまな問題を修正しました。コンポーザブルまたは子(Orbiter など)が破棄シーケンスを開始した直後に入力イベントが発生すると、クラッシュが発生していました。また、子がホバーイベントを受け取る問題を修正します。(Ifc477)RotateToLookAtUserActivityのパネルサイズを縮小し、視野角の小さいデバイスでクリッピングが発生しないようにしました。(I8d672)
既知の問題
- Compose XR パネルに問題があり、1 つのアクティビティで多数のパネルを作成すると、パネルが破棄された後でも表示内容が破損する可能性があります。
バージョン 1.0.0-alpha17
2026 年 8 月 12 日
androidx.xr.compose:compose:1.0.0-alpha17 と androidx.xr.compose:compose-testing:1.0.0-alpha17 がリリースされました。バージョン 1.0.0-alpha17 に含まれる commit については、こちらをご覧ください。
API の変更
Meter値クラスを削除します。これはScenecoreのvirtualPixelDensityに置き換えられます。(I690ee)SpatialGltfModelAPI は試験運用版になり、使用するにはオプトインする必要があります。(I4557e)systemのサイズ変更可能を null 許容にしました(Ib0093)- テスト用に
SubspaceSemanticsInfoでDensityを公開しました。(I2e826) ResizePolicyのデフォルト オプションの名前をsystemに変更し、パラメータのない新しいDefaultオプションを追加しました(Ic8b16)FollowTargetを試験運用版としてマークしました。FollowingSubspaceAPI 全体が試験運用版になりました。(Id4ee3)GltfAnimationAPI を削除(Ic2894)- パラメータ化された
MovePolicy.default()メソッドの名前をMovePolicy.system()に変更しました。標準のデフォルトの移動動作を表すval MovePolicy.Defaultプロパティが導入されました。(Iedcc9) ExperimentalMoveAnchorPolicyのオプトイン要件をPlaneSemanticとPlaneOrientationに拡大(Ief927)VolumeConstraints.offsetからresetMinsを削除しました(Ib2f2f)- 非推奨となった
SceneCoreEntitySizeAdapter関数を削除しました。(Ib6722) allowUnboundedSubspaceで非推奨のSubspaceオーバーロードを削除しました。(I8e97f)- 非推奨のセマンティクス修飾子のオーバーロードを削除しました。(I4ac10)
バグの修正
InteractionPolicyがアタッチされたComposableの子要素が入力イベントをトリガーする問題を修正しました(Icdba6)
バージョン 1.0.0-alpha16
2026 年 7 月 15 日
androidx.xr.compose:compose:1.0.0-alpha16 と androidx.xr.compose:compose-testing:1.0.0-alpha16 がリリースされました。バージョン 1.0.0-alpha16 に含まれる commit については、こちらをご覧ください。
API の変更
ComponentOverrideAPI を削除しました(I820c4)GltfAnimationAPI とSpatialGltfModelAnimationAPI が試験運用版としてマークされました。一部のプロパティがゲッターに変換されました。(I8d689、b/524771027)- メートルとピクセルの間の変換を一定にすることで、全体的な密度の動作を修正しました。Meter.kt が非推奨になりました。代わりに
Session.scene.virtualPixelDensityを使用できるようになりました。(I122ff、b/430097855、b/474168798) - サイズ変更可能な修飾子を更新し、2 つの修飾子ではなく
ResizePolicyを使用するようにしました(I7fb0f、b/496257436、b/519672992) SubspaceAssertions.ktのすべての公開浮動小数点ディメンションと位置の等価性アサーションに許容値Dp = Dp(0.5f)パラメータを追加しました。デフォルトの許容動作(0.5.dp)は完全に文書化されています。(I266cb、b/521491915)movePolicyパラメータを含む移動可能なオーバーロードを追加し、transformingMovableとmovableを非推奨にしました(Ic88c1、b/481781189)- Material Expressive の仕様に準拠した、標準リストアイテムとセグメント リストアイテムの新しい非インタラクティブ バリエーションを追加しました。表現力の低いバージョンは非推奨になりました。(Ide4de、b/491994186)
- Subspace では、
allowUnboundedSubspaceパラメータが非推奨となり、非表示になりました。境界なしの動作は、Subspace 修飾子でSubspaceModifier.requiredSizeIn(maxWidth=Dp.Infinity,maxHeight=Dp.Infinity,maxDepth=Dp.Infinity) を使用して実現するようになりました。FollowingSubspaceからallowUnboundedSubspaceパラメータが削除されました。(Ia72ae、b/433624021) Session.createを suspend 関数に変換しました。(I5d27f)ExoPlayerまたはSoundEffectPlayerを介してオーディオ再生を空間化できるSubspaceModifier.spatializedAudioOutputを追加しました(I46697、b/489421980、b/497867019)ComponentActivity.requestHomeSpace()とrequestFullSpace()を更新して、ステータス確認用にSpaceRequestResultを返すようにしました。(If1672)AnchorEntityをAnchorSpaceと呼ぶように更新しました(Ifa95e、b/513619219)SpatialGltfModelSourceからの制限なしのfromResourceメソッド(I1f5a1、b/503047416)SubspaceSemanticsMatcherメンバーは公開されています。descriptionプロパティ、コンパニオン ファクトリ メソッド(expectValue、keyIsDefined、keyNotDefined)、メンバー関数(matches、matchesAny)、演算子(and、or、not)。(I972a4、b/460427288)SubspaceModifier.semantics、SubspaceModifier.testTag、SubspaceSemanticsInfo、SubspaceSemanticsModifierNodeを更新して、キュレートされた空間セマンティクス型を使用するようにしました。(I80dea、b/460427288)SpatialAlignmentでpositionをalignに名前変更し、統一されたalignAPI を優先して個々の方向オフセット メソッドを削除しました。(I9bdb2、b/479805937)SpatialConfigurationから非推奨の Space モード API を削除しました。(I1ef5c、b/458712461)SubspaceSemanticsConfigurationを導入しました。これは、Spatial ノードのセマンティクス プロパティの構成です。このクラスは、基盤となる 2D セマンティクス機能を外部のコンシューマーに漏洩させることなく、3D セマンティクスのクエリ メソッドを安全に公開します。(Id025e、b/460427288)SubspaceSemanticsPropertyReceiverを導入しました。これは、3D レイアウト コンテナのプロパティを有効なフィールド(最初はtestTagとcontentDescription)に制限する専用のラッパーです。(I5cf5c、b/460427288)
バグの修正
- Semantic 修飾子の
hasContentDescriptionを更新し、デフォルトで部分文字列マッチングを行うようにしました。(I08214) - 制限付き
FollowBehavior.ExponentialDecay()を追加しました。これは、弾性物理学に沿ったソフト フォロー動作を提供します。(I7449c、b/485639909、b/500493335)
ほとんどの API がこの影響を受けます。具体的には、LocalSession CompositionLocal と LocalSession に依存するすべての CompositionLocals(LocalSpatialConfiguration、LocalSpatialCapabilities など)は、Session が初期化される前に null またはその非 XR バージョンに解決されるようになります。
Session が利用可能になると、正しい状態で再コンポーズがトリガーされます。(I0cfa4、b/514712835、b/514712835)
- 一時停止の動作、キャンセル、同時実行に関する
ComponentActivity.requestHomeSpaceとComponentActivity.requestFullSpaceのドキュメントを明確化しました。CancellationExceptionの伝播を検証するようテストを更新しました。(I22f75、b/493289528)
バージョン 1.0.0-alpha15
2026 年 6 月 17 日
androidx.xr.compose:compose:1.0.0-alpha15 と androidx.xr.compose:compose-testing:1.0.0-alpha15 がリリースされました。バージョン 1.0.0-alpha15 に含まれる commit については、こちらをご覧ください。
API の変更
ResizePolicyと古いサイズ変更可能な修飾子を非推奨とし、新しいSubspaceModifier.resizableオーバーロードとSubspaceModifier.transformingResizableに置き換えました。(I9e4bc)SpatialGltfModelAPI を更新しました。SpatialGltfModelSource.fromResourceを介してリソースからモデルを読み込むサポートを追加しました。SpatialGltfModelAnimationで speed をplaybackSpeedに変更し、resume() メソッドを追加しました。SpatialGltfModelStatus.Loaded と Loading がオブジェクトになりました。(I523de)rotateToLookAtUserを試験運用版 API としてマークしました。(I86c16)- 保護された変数
targetCurrentPoseをローカル変数currentTargetPoseMeterに移動して名前を変更しました。(Ia557c) SpatialPanelとSpatialExternalSurfaceの kdoc を更新して、オブジェクトがレイアウト サイズ内でレンダリングされる場所を含めます(I72104)SpatialGltfModelState内のSpatialGltfModel読み込みロジックをカプセル化し、失敗時の動作を明確化しました。(Ibe98b)SubspaceModifer.sizeKDocs のdepthを明確にしました(I0f84f)
バージョン 1.0.0-alpha14
2026 年 5 月 19 日
androidx.xr.compose:compose:1.0.0-alpha14 と androidx.xr.compose:compose-testing:1.0.0-alpha14 がリリースされました。バージョン 1.0.0-alpha14 に含まれる commit については、こちらをご覧ください。
API の変更
- デフォルトのシステム処理による 3D 動作に
transformingMovableを導入し、カスタムの動作を処理するmovableの新しいオーバーロードを導入しました。(I50960) SpatialGltfModel.fromData()を削除しました。(I4d083)- 新しい修飾子ノード インターフェース
SubspaceMeasuredSizeAwareModifierNodeを追加しました。これにより、測定パスの後にonRemeasuredコールバックが提供されます。SubspaceLayoutAwareModifierNodeがこの新しいインターフェースを拡張するようになりました。onSizeChanged修飾子がonRemeasuredを使用するように更新され、コールバックが配置後ではなく測定直後にトリガーされるようになりました。(Iafbae) InteractionPolicyをInterfaceに更新しました(I0ff30)- Compose
compileSdkを API 37 に更新しました。つまり、Compose を使用する場合は、AGP の最小バージョンが 9.2.0 である必要があります。(Id45cd) Sizeの KDocs を更新しました(Iefa9a)
バージョン 1.0.0-alpha13
2026 年 5 月 6 日
androidx.xr.compose:compose:1.0.0-alpha13 と androidx.xr.compose:compose-testing:1.0.0-alpha13 がリリースされました。バージョン 1.0.0-alpha13 に含まれる commit については、こちらをご覧ください。
API の変更
- Orbiter API には追加の変更が予定されています。Orbiter の非推奨通知を抑制し、今後のリリースでの Orbiter の変更に注意することをおすすめします。
SceneCoreEntityを使用して glTF をレンダリングするユーザーは、glTF がレンダリングされるように、GltfModel.create呼び出しのparentパラメータにsession.scene.activitySpaceを渡していることを確認する必要があります。- デベロッパーが Compose For XR アプリに Gltf を追加できるように、
SpatialGltfModelAPI を追加しました。デベロッパーは、Gltf モデル内のアニメーションとノードをクエリすることもできます。(I8b542、b/495422586) SceneCoreEntitySizeAdapterをクラスからインターフェースに変更(I5a784、b/475292310)SurfaceProtectionの名前をSpatialExternalSurfaceProtectionに変更しましたSpatialExternalSurfaceの KDocs を更新しました(Ifad0a、b/485231082)currentWindowAdaptiveInfoを非推奨にし、その V2 を導入(I40ecf、b/424442112)resizable修飾子が公開され、グループ(SpatialRowなど)に適用できるようになりました。(I2bcf6、b/348483527、b/489753178、b/479530787)movable修飾子が公開されました。この修飾子は、現時点ではSpatialPanelsとSpatialExternalSurfaceでうまく機能しますが、すべてのSubspaceComposablesで適切にサポートされるようにすることが目的です。(I9a3cd、b/479530787、b/478935063、b/478935063)SpatialEnterTransitionとSpatialExitTransitionを@Immutableとしてマーク(If1710、b/487757837)- このリリースでは、追加のテストが完了するまで
SpatialGltfModelAPI は制限付きとしてマークされます。(Ibf003、b/466090694) DeviceTrackingMode.LAST_KNOWNの名前をSPATIAL_LAST_KNOWNに変更(非推奨のフォールバック付き)、3DoF トラッキング用にINERTIAL_LAST_KNOWNを追加、TRACKING_DEGRADEDをTrackingStateに追加しました。(Ie661c、b/445466590)- 非推奨の
SpatialLayoutSpacerを削除しました(I7b36c) - 非推奨のパディング API を削除しました(If1886)
- バイアス値に
floatRangeを追加しました。LayoutDirectionのデフォルト値を削除しました(I9d74e)
バグの修正
SpatialColumn、SpatialRow、SpatialCurvedRowのコードサンプルと KDoc ドキュメントを追加しました。(Iaf54f、b/495777633)
バージョン 1.0.0-alpha12
2026 年 3 月 25 日
androidx.xr.compose:compose:1.0.0-alpha12 と androidx.xr.compose:compose-testing:1.0.0-alpha12 がリリースされました。バージョン 1.0.0-alpha12 に含まれる commit については、こちらをご覧ください。
API の変更
- glTF をレンダリングしてアニメーションを制御する
SpatialGltfModelAPI とSpatialGltfModelAnimationAPI を追加しました。SpatialGltfModelStateをAutoCloseableに変更しました。リソースを解放するには、閉じる必要があります。(I11fde、b/466065486、b/481379924)。ただし、SpatialGltfModelAPI は、追加のテストが完了するまで、このリリースでは制限付きとしてマークされます。(Ibf003、b/466090694) - 非推奨の空の
SubspaceModifier.rotateオーバーロードを追加しました。(Idceb6) SpatialSmoothFeatheringEffect関数の名前をspatialSmoothFeatheringEffectに変更し、描画モジュールに移動しました。SpatialExternalSurfaceのデフォルトのフェザリング値を null に更新しました。これにより、以前の ZeroFeatheringEffect の機能が再現されます。(I5fdaa、b/460426800)onPointSourceParamsAvailableを削除しました。別の音声空間化 API が近日中に利用可能になります。(I86507、b/458513439)- オフセット サブスペース修飾子の RTL 動作を追加しました。また、レイアウトの方向を無視する
absoluteOffsetも追加しました。(I30e4b、b/474409165)
バージョン 1.0.0-alpha11
2026 年 2 月 25 日
androidx.xr.compose:compose:1.0.0-alpha11 と androidx.xr.compose:compose-testing:1.0.0-alpha11 がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit については、こちらをご覧ください。
新機能
SpatialExternalSurfacesにSuperSamplingパラメータを追加(Icd4d1)
既知の問題
- SceneCore の
SurfaceEntityの問題により、SpatialExternalSurfaceのインスタンスを作成するときにアプリがクラッシュすることがあります。この問題は、androidx.xr.scenecore:scenecore-*:1.0.0-alpha13、androidx.xr.compose:compose:1.0.0-alpha12、およびそれ以降のリリースで解決されています。影響を受けるアプリは最新バージョンに更新する必要があります。
API の変更
- レイアウト方向を認識するためのサブスペース修飾子のパディング変更。(I53e25)
SpatialCapabilitiesは封印され、延長できなくなりました。(I07aef)- 汎用的な
SpatialAlignmentパラメータを受け取るSpatialRowAPI とSpatialColumnAPI は非推奨になりました。代わりに、それぞれverticalAlignmentまたはhorizontalAlignmentを受け取る API をSpatialRowとSpatialColumnに使用してください。(Iec390) - オーバーロード
SubspaceLayout関数 API の統合(Idd30a) SubspaceModifier.lookAtUserの名前をrotateToLookAtUserに、upパラメータの名前をupDirectionに変更しました。(Icafb8)SpatialRowをインライン関数にしました(Ia2f20)SpatialColumnをインライン関数にしました(I681be)- ビルボード API を削除しました(Ib76cd)
バージョン 1.0.0-alpha10
2026 年 1 月 28 日
androidx.xr.compose:compose:1.0.0-alpha10 と androidx.xr.compose:compose-testing:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。
API の変更
- 非推奨になった API -
ApplicationSubspaceを削除(Ia6596、b/468345186) SpatialShapeをシールド インターフェースに更新しました(I7e3f5、b/460426800)SpatialAlignmentで非推奨の API を削除しました。(Ib0b61、b/468011887)SpatialLayoutSpacerを非推奨にし、SpatialSpacerを導入します。(I2ebf3、b/466071383)UserSubspaceAPI を更新し、「遅延ロック」という用語を「ソフトロック」に置き換えました。(I9ded1、b/464035984)
バージョン 1.0.0-alpha09
2025 年 12 月 3 日
androidx.xr.compose:compose:1.0.0-alpha09 と androidx.xr.compose:compose-testing:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。
API の変更
LookAtUserと Billboard 修飾子を追加。これにより、コンテンツが常にユーザーの方向を向くようになります。(I49b99)InteractionPolicyをSpatialExternalSurfacesとSpatialPanelsに設定する機能を追加し、クリックやその他の 3D 入力イベントを検出できるようにします。(Iae155)- 幅、高さ、奥行きを Dp 値として指定するサイズと
requiredSize修飾子のオーバーロードを追加しました。(I92f79) ParentLayoutParamsModifierインターフェースがDelegatableSubspaceNodeを拡張するようになりました。(I1a6d4)ApplicationSubspaceは非推奨となり、Subspace API が推奨されます。- Subspace API の動作が変更され、推奨されるポーズとスケールでアプリ全体のサブスペースのみが提供されるようになりました。
PlanarEmbeddedSubspaceAPI が導入され、2D コンテキストに埋め込みサブスペースが提供されます。(Id3343)
SubspaceModifier.NodeAPI にshouldAutoInvalidateフラグを追加しました。(I93902)required(Size|Width|Depth|Height)を追加しました。これにより、デベロッパーは親の受信測定制約を無視して、@SubspaceComposableのサイズを特定の範囲に制限できます。(Ifaa78)@SubspaceComposableのサイズが変更されたときにデベロッパーが対応するための、シンプルで集約されたコールバックを提供するSubspaceModifier.onSizeChangedを追加しました。(I994f9)- Volume API を削除しました。Volume API の代わりに
SceneCoreEntityAPI を使用する必要があります。(I4162b) SubspaceLayoutModifierNode.requestRelayoutをinvalidateMeasurement/invalidatePlacementに分割します。(I14805)- デベロッパーが Compose で glTF をレンダリングできるようにする
SpatialGltfModelAPI を追加しました。(Icc91f) - glTF を簡単にレンダリングするための
SpatialGltfModelコンポーザブル API を導入しました(Iade67)
バグの修正
SceneCoreEntityのレイアウトに関するバグを修正しました。これで、制約が適切に尊重されるようになります。(I11bb8)- jxr-compose モジュールを
Compile sdk = 34に下げました(I2d5db)
バージョン 1.0.0-alpha08
2025 年 10 月 22 日
androidx.xr.compose:compose:1.0.0-alpha08 と androidx.xr.compose:compose-testing:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。
API の変更
ResizePolicyを変更して、onResizeStart、onResizeUpdate、onResizeEndを受け入れるようにしました。(I7e21f)
バグの修正
- サブスペースを含むアクティビティを破棄する際のクラッシュを防止。(I595a1)
バージョン 1.0.0-alpha07
2025 年 9 月 24 日
androidx.xr.compose:compose:1.0.0-alpha07 と androidx.xr.compose:compose-testing:1.0.0-alpha07 がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。
API の変更
SpatialMainPanelの KDocs を改善しました。(I27b70、b/444467891)SpatialRowやSpatialColumnなどの 3D レイアウトで、主軸に沿って子を配置するためのSpatialArrangementを導入しました。この新しい API は、Start、End、Center、SpaceBetween、SpaceAround、SpaceEvenlyなど、2D Compose の使い慣れた配置オプションを提供し、LTR と RTL の両方のレイアウト方向を完全にサポートします。(I7db38、b/436289959)SubspaceModifier.Nodeの基本インターフェースを追加し、拡張インターフェースの型安全性とユーザビリティを改善しました。たとえば、CompositionLocalConsumerSubspaceModifierNodeLayoutCoordinatesAwareModifierNodeSubspaceLayoutModifierNodeCoreEntityNode(内部)(Iede00、b/440599394、b/440599394)
SpatialExternalSurfaceの制限を解除(I33315、b/439646773)- Subspace コンポーザブルに
SubspaceModifierを導入し、制約パラメータをSubspaceModifierからサイズ関連のSubspaceModifiersに置き換えました。allowUnboundedSubspaceが true の場合でも、サブスペースに無制限の制約を設定できます。(Ib06e6、b/433331675) DragPolicy()とResizePolicy()がSpatialPanelとSpatialExternalSurfaceAPI の一部になったため、移動可能でサイズ変更可能なSubspaceModifiersを非推奨にしました(I397bf、b/437924639)- 空間レイアウトで
LayoutDirectionのサポートを追加しました。SpatialAlignmentを使用するコンポーザブルで、LTR コンテキストと RTL コンテキストの両方で要素が正しく配置されるようになりました。(I964bb、b/436300273) - これらの動作がサポートされているコンテナにのみ適用されるように、
PanelAPI に Resizable パラメータと Movable パラメータを追加します。(Id491c) - 幅、高さ、奥行きの正確な最小値と最大値の制約を設定できる
sizeIn、widthIn、heightIn、depthIn、SubspaceModifiersを追加しました。(I1af09、b/433330761)
バージョン 1.0.0-alpha06
2025 年 8 月 13 日
androidx.xr.compose:compose:1.0.0-alpha06 と androidx.xr.compose:compose-testing:1.0.0-alpha06 がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。
バグの修正
- ライフサイクル オーナーが破棄されたときに
ComposeXrOwnerLocalsを再作成します。(9123ce1)
バージョン 1.0.0-alpha05
2025 年 7 月 30 日
androidx.xr.compose:compose:1.0.0-alpha05 と androidx.xr.compose:compose-testing:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
新機能
SubspaceComposableアノテーション クラスを公開にしました。(Ic2a34、b/399432430)- 180 度と 360 度の球体を表す 2 つの新しい
SpatialExternalSurfaceコンポーザブル。(I40ef2、b/391705799) SubspaceModifier.aspectRatioを追加しました(Ide5ab、b/399729509、b/414762147)SceneCoreと XR 用 Compose の相互運用性を改善するために、SceneCoreEntityAPI を追加しました。(I50bb3、b/423020989)- スケーリングされていない
GravityAligned機能に対応するGravityAlignedsubspaceAPI を提供しました(I07359)
API の変更
SpatialDialog()はSpatialDialogProperties.dismissOnBackの押下設定に従います。(Ib453b、b/416797132)- メートル単位で表されるため、
minimumPanelDimensionを新しいデフォルトのディメンション サイズDimensions(0.1f, 0.1f, 0.1f)に更新します。(Ib852a) - サブスペースとオービターは、ホームスペースとアプリがバックグラウンドにあるときに内部状態を保持するようになります。ホームスペース モードでは、Subspace はフルスペース モードへの切り替えに備えてシーンをセットアップします。(I40317、b/416037751)
SpatialDialogsは、アプリがバックグラウンドにあるときに状態を保持するようになりました。(I6aa56)ApplicationSubspaceは、推奨されるスケールと位置をシステムから継承するようになりました。(I4565f、b/418834194)SubspaceComposable以外のコンテキストでSubspaceComposableが使用された場合のエラー メッセージを改善し、エラーを早期にトリガーするようにしました。(Iee2ae、b/416484684)- 構成可能な API の誤用時に警告が見落とされることが多いため、
ExperimentalSubspaceVolumeApiを Warning から Error に更新しました。(I427aa、b/424864286) - サブスペースと
ApplicationSubspaceはrecommendedContentBoxInFullSpaceによって制約されるようになりました。以前はSpatialUserの画角によって制約されていました。(I41015、b/423074142) SpatialElevationを更新し、最小サイズを使用することで、ハードコードされたサイズを使用しないようにしました(I2dbe6、b/427785338)- キー変数が変更されたときに更新されるように、
SpatialAcitivityPanelをスクリムする方法を更新。(I0f64d、b/427999029) - デフォルトの制約値を同等の値に設定するため、
VolumeConstraints.Unboundedを削除します。(Ie24ec、b/407938414) SpatialFeatheringSizeが公開されなくなりました(I1c15b、b/399432430)- Compose の
Placeableと区別するため、XR のPlaceableの名前をSubspacePlaceableに変更しました。(I74874) - Orbiter の設定を削除し、新しいパラメータとして
shouldRenderInNonSpatialを追加します。また、EdgeOffsetクラスを削除し、Orbiter()関数を統合するための新しいパラメータとしてorbiterOffsetTypeを追加します。また、OrbiterEdgeをContentEdgeに名前変更します。(Iebf3d) - Compose の
Measurable型と区別するために、Measurableの名前をSubspaceMeasurableに変更しました。(I9726c) MeasureResultの名前をSubspaceMeasureResultに変更しました(I9f34d)- Compose の
SubspaceコンポーザブルでsetContentを使用するように変更し、setSubspaceContentAPI を削除しました。(Ifff4c、b/421427391、b/421427391) MeasurePolicyの名前がSubspaceMeasurePolicyに変更されました。(I37a9b、b/422553904)- デフォルトなしではメンバーを追加できないため、
SubspaceSemanticsInfoをシール済みインターフェースにします。(I372f9、b/423704068) SpatialExternalSurfaceのドキュメントを更新し、ContentSecurityLevelの名前をSurfaceProtectionに変更しました(I3c460、b/420982808)- 移動可能な修飾子にアンカーを設定できるオーバーロードされたコンストラクタを提供しました。(Ic0c70)
- ツールチップの位置プロバイダを追加しました。これにより、デベロッパーはツールチップをアンカーの上、下、左、右のいずれに配置するかを制御できるようになりました。カレットの Shape を受け取る API を追加し、より多くのカスタム シェイプを提供できるようにしました。(Ie513c、b/374766087、b/418854637)
PublishedApiとしてCoreEntityを削除しました(Ifee05)
バグの修正
- レンダリング時に
SpatialDialogが点滅する問題を修正しました。(Ife73c、b/401619909) SpatialDialogがアクティビティ パネルをスクリムできない問題を修正しました。(I8ca6c、 b/367442109)- XR ダイアログで一部のコンテンツが表示されない問題を修正しました(I17cd5、b/418062437)
- コンテンツ内をクリックすると
SpatialPopupが閉じられる問題を修正しました。(If262c、b/417245722) resizable().movable()をチェーンしたときに SpatialPanel が新しいサイズに正しくサイズ変更されない問題を修正しました。(I02ee3、b/422264230)SpatialComposeVideoPlayerでtopBarがメニューと重なる問題を修正しました(Id33bc、b/427168167)- 角の丸みがレンダリングされない問題を修正しました(I975fe、b/428261830)
バージョン 1.0.0-alpha04
2025 年 5 月 7 日
androidx.xr.compose:compose:1.0.0-alpha04 と androidx.xr.compose:compose-testing:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
- カスタム
SubspaceModifierタイプがコンポジション ローカル値にアクセスできるようにする、CompositionLocalConsumerSubspaceModifierNodeインターフェースを追加しました。 - Compose の
AndroidView実装スタイルに準拠した新しいSpatialPanelAPI を追加し、以前のViewBased SpatialPanelを非推奨にしました。 - 制約のない制約を表す
VolumeConstraints.Unboundedコンパニオン オブジェクトを追加しました。 - 空間化された音源を許可する
SubspaceModifier.onPointSourceParamsを追加しました。 - 公開
ApplicationSubspaceが追加されました。これにより、アプリが空間コンテンツをレンダリングできる 3D 領域を定義するオプションのVolumeConstraintsが提供されます。デフォルトでは、制約が指定されていない場合、Subspace はSpatialUserの現在の視野の幅と高さで囲まれます。画角を特定できない場合に使用する制約を指定できます。それ以外の場合は、画角の幅と高さのデフォルト値が使用されます。 - 立体視コンテンツのレンダリングに使用できる
SpatialExternalSurfaceを追加しました。SpatialExternalSurfaceは、修飾子(アルファを除く)とエッジのフェザー効果でカスタマイズできます。 - ユーザーが空間ポインタのアイコンを設定できる新しい
pointerHoverIconサブスペース修飾子を追加しました。
API の変更
- すべての Jetpack XR パッケージの
RequiresApi(34)制限を削除しました。Jetpack XR は現在 API レベル 34 以上のデバイスでのみ利用できるため、この制限は冗長でした。(Iae0f8) - Kotlin 2.0 でリリースされたプロジェクトを使用するには、KGP 2.0.0 以降が必要です。(Idb6b5)
- 埋め込みアクティビティのない空間パネルで、戻る操作が機能するようになりました。戻る操作を機能させるには、Android マニフェストで
android:enableOnBackInvokedCallback="true"を指定する必要があります。 - 空間ダイアログで戻る操作が機能するようになりました。バックハンドリングを機能させるには、Android マニフェストで
android:enableOnBackInvokedCallback="true"を指定する必要があります。 - Compose ベースと View ベースの
SpatialPanelは、コンテンツに基づいてサイズを調整できるようになりました。 - デベロッパーは、独自のカスタム
SpatialElevationLevel値を設定できるようになり、事前定義されたレベルに制限されなくなりました。 elevationパラメータを使用して、オービターの高度レベルをカスタマイズできるようになりました。- サブスペースは、デフォルトで
SpatialUserの画角の幅と高さで制限できるようになりました。画角を特定できない場合は、画角の幅と高さのデフォルト値が使用されます。 Movable修飾子に新しいコールバックonMoveStartとonMoveEndを追加しました。onMoveStartコールバックとonMoveEndコールバックは、ユーザーが移動可能な修飾子を使用してサブスペース コンポーザブルの移動を開始および終了したときに呼び出されます。SpatialRowやSpatialPanelなどの空間 API からnameパラメータが削除されました。空間コンポーズ ツリーのデバッグには、代わりにSubspaceModifier.testTagを使用します。spatialElevationLevelとcontentのみを持つSpatialPopupのサポートされていないオーバーロードを削除しました。onDimissRequestをサポートするインターフェースを使用してください。- Movable 修飾子の
onPoseChangeコールバックが削除されました。代わりにonMoveを使用してください SubspaceModifiersは、切り離されている場合や切り離し中の場合は、効果を適用しなくなります。- 既存の
SpatialRowAPI がSpatialRowとSpatialCurvedRowに分割されました。以前にSpatialRowのcurveRadiusパラメータを使用していた場合は、同じ動作を提供するSpatialCurvedRowを代わりに使用してください。 - 同様に新しいシステム イメージで実行した場合、
MainPanelとActivityPanelにタイトルバーが表示されなくなりました。 - アルファ修飾子とスケール修飾子がスタック可能になり、最終的に適用されるアルファ値またはスケール値の値を乗算するようになります。
- Movable 修飾子の
onPoseChangeコールバックが最適化され、ポーズの動きがよりスムーズになりました。 - 移動可能およびサイズ変更可能な修飾子は、状態の変更が再コンポーズをトリガーするように、メインスレッドでコールバックを実行するようになりました。
- レイアウト フェーズと測定フェーズに状態の監視を追加し、
SubspaceLayoutの状態が変化するとレイアウトが再実行されるようにしました。 - 既存の修飾子をより適切に再利用できるように、最適化された修飾子チェーンの更新。
バグの修正
SpatialDialogが表示されたときにスクリムが停止しました。(Ic4594)- 修飾子ノードが切り離されている間に行われたレイアウトの再リクエストは無視されるようになりました。
- Movable 修飾子と Resizable 修飾子によってトリガーされるレイアウト再設定フェーズを削除しました。
MainPanel()コンポーザブルで、ディメンションのいずれかが直接またはレイアウト計算(SpatialRow/SpatialColumn計算など)中にゼロに設定された場合に発生するクラッシュを修正しました。代わりに、パネルが非表示になります。この修正はレイアウト フェーズでのクラッシュに特に対処するものであり、ユーザー操作によるパネルのサイズ変更は別途処理されます。非表示のパネルに UI アフォーダンスがありません。- サイズ変更可能な修飾子からの
maintainAspectRatioに関する問題を修正しました。アスペクト比が維持されるようになりました。 - ネストされたサブスペースが単一フレームで誤った位置に配置される問題を修正しました。
- 角丸が適用されるべきときに適用されないことがある問題を修正しました。
NestedSubspacesが 1 フレームだけ間違った場所に表示されることがなくなります。
バージョン 1.0.0-alpha03
2025 年 2 月 26 日
androidx.xr.compose:compose:1.0.0-alpha03 と androidx.xr.compose:compose-testing:1.0.0-alpha03 がリリースされました。前回のアルファ版からの大きな変更はありません。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
バージョン 1.0.0-alpha02
2025 年 2 月 12 日
androidx.xr.compose:compose:1.0.0-alpha02 と androidx.xr.compose:compose-testing:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- 空間ダイアログがアクティブなときに、アクティビティ パネルのコンテンツをスクリムできるようになりました。
OrbiterAPI がSubspaceComposableコンテキストで使用できるようになり、オービターが最も近いSubspaceLayoutベースのコンポーザブルの親にアタッチされるようになります。- カスタムの配置ベースの修飾子を許可する
LayoutCoordinatesAwareModifierNodeを導入しました。 SubspaceModifier.Nodeにアタッチ/デタッチ ライフサイクル メソッドを追加しました。- 移動可能な修飾子に
scaleWithDistanceを追加しました。scaleWithDistanceが有効になっている場合、移動されたサブスペース要素は拡大または縮小されます。また、移動前に設定されていた明示的なスケールも維持されます。
API の変更
SessionCallbackProviderを削除し、SpatialCapabilitiesに置き換えました。
その他の変更
minSDKを 24 に減らしました。すべての Jetpack XR API は、引き続き実行時に API 34 を必要とします。OrbiterEdgeOffset.inner、EdgeOffset.outer、EdgeOffset.overlapコンストラクタは@Composableメソッドではなくなり、コンポーザブルでないコンテキストで使用できるようになりました。- 最新の UX 仕様に合わせて空間の高度レベルを更新しました。
MeasurableLayoutにSubspaceSemanticsInfoインターフェースを実装します。SubspaceModifierElementの名前をSubspaceModifierNodeElementに変更しました。
バグの修正
SubspaceModifierの順序を安定させるための修正。SubspaceModifierの動作がより安定します。オフセット、回転、拡大縮小、移動可能、サイズ変更可能の修飾子を任意の順序で使用できるようになりました。
バージョン 1.0.0-alpha01
2024 年 12 月 12 日
androidx.xr.compose:compose-*1.0.0-alpha01 がリリースされました。
初回リリースの機能
Jetpack Compose for XR のデベロッパー向け初回リリース。既存の 2D アプリを XR に移植する場合でも、XR アプリをゼロから作成する場合でも、行や列などの使い慣れた Compose のコンセプトを使用して、XR で空間 UI レイアウトを作成できます。このライブラリは、サブスペースと空間コンポーザブル(空間パネルやオービターなど)を提供します。これにより、既存の 2D Compose または Views ベースの UI を空間レイアウトに配置できます。Volume サブスペース コンポーザブルが導入され、3D モデルなどの SceneCore エンティティを UI に相対的に配置できるようになりました。詳しくは、デベロッパー ガイドをご覧ください。
Subspace: このコンポーザブルはアプリの UI 階層内の任意の場所に配置できるため、ファイル間のコンテキストを失うことなく、2D UI と空間 UI のレイアウトを維持できます。これにより、UI ツリー全体で状態をホイストしたり、アプリを再設計したりすることなく、既存のアプリ アーキテクチャなどのものを XR と他のフォーム ファクタの間で簡単に共有できます。SpatialPanel: スペース パネルは、アプリのコンテンツを表示できるサブスペース コンポーザブルです。たとえば、動画の再生、静止画、その他のコンテンツをスペース パネルに表示できます。
オービター: オービターは空間 UI コンポーネントです。対応する空間パネルに接続するように設計されており、その空間パネルに関連するナビゲーションとコンテキスト アクション アイテムが含まれています。たとえば、動画コンテンツを表示する空間パネルを作成した場合、オービター内に動画再生コントロールを追加できます。
Volume: UI を基準にして、3D モデルなどの SceneCore エンティティを配置します。
空間レイアウト:
SpatialRow、SpatialColumn、SpatialBox、SpatialLayoutSpacerを使用して、複数の空間パネルを作成し、空間レイアウト内に配置できます。SubspaceModifierを使用してレイアウトをカスタマイズします。空間 UI コンポーネント: これらの要素は 2D UI で再利用できます。空間属性は、空間機能が有効になっている場合にのみ表示されます。
SpatialDialog: パネルが z 軸方向に少し奥に移動し、ダイアログが浮き上がって表示されます。SpatialPopUp: パネルが z 軸方向に少し奥に移動し、ポップアップが浮き上がって表示されるSpatialElevation:SpatialElevationLevelを設定して標高を追加できます。
SpatialCapabilities: ユーザーがアプリやシステムを操作するにつれて、空間機能は変化する可能性があります。また、アプリ自体によって変化することもあります(ホームスペースやフルスペースへの移動など)。問題を回避するには、アプリで
LocalSpatialCapabilities.currentをチェックして、現在の環境でサポートされている API を特定する必要があります。isSpatialUiEnabled: 空間 UI 要素(SpatialPanel など)isContent3dEnabled: 3D オブジェクトisAppEnvironmentEnabled: 環境isPassthroughControlEnabled: アプリケーションがパススルー状態を制御できるかどうかisSpatialAudioEnabled: 空間オーディオ
既知の問題
- 現在、Jetpack Compose for XR を使用するには minSDK 30 が必要です。回避策として、次のマニフェスト エントリ
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>を追加すると、minSDK が 23 の状態でビルドして実行できるようになります。 - Jetpack XR アプリでは現在、AndroidManifest で
android.permission.SCENE_UNDERSTANDING権限をリクエストする必要があります。 - マニフェストの
PROPERTY_XR_ACTIVITY_START_MODEプロパティを使用してアプリがフルスペースで直接起動される場合、アクティビティ/アプリケーションは最初にホームスペースで開いてから、フルスペースに移行します。 - Volume コンポーザブルの glTF が、初期状態で間違った位置でちらつくことがあります。
- 大幅に移動されたパネルで SpatialDialog を使用すると、コンテンツが間違った方向に移動します。