Jetpack Compose for XR

Android XR の空間機能を活用する空間 UI レイアウトを宣言的に構築します。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2026 年 3 月 25 日 - - - 1.0.0-alpha12

依存関係の宣言

XR Compose への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリ をご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    implementation "androidx.xr.compose:compose:1.0.0-alpha12"

    // Use to write unit tests
    testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha12"
}

Kotlin

dependencies {
    implementation("androidx.xr.compose:compose:1.0.0-alpha12")

    // Use to write unit tests
    testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha12")
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.0

バージョン 1.0.0-alpha12

2026 年 3 月 25 日

androidx.xr.compose:compose:1.0.0-alpha12androidx.xr.compose:compose-testing:1.0.0-alpha12 がリリースされました。バージョン 1.0.0-alpha12 に含まれる commit については、こちらをご覧ください

API の変更

  • SpatialGltfModel API と SpatialGltfModelAnimation API を追加して、glTF をレンダリングし、アニメーションを制御できるようにしました。SpatialGltfModelStateAutoCloseable に変更しました。リソースを解放するには、閉じる必要があります。(I11fdeb/466065486b/481379924)ただし、SpatialGltfModel API は、追加のテストが完了するまで、このリリースでは制限付きとしてマークされています。(Ibf003b/466090694
  • SubspaceModifier.rotate に非推奨の空のオーバーロードを追加しました。(Idceb6)
  • SpatialSmoothFeatheringEffect 関数の名前を spatialSmoothFeatheringEffect に変更し、描画モジュールに移動しました。SpatialExternalSurface のデフォルトのフェザリング値を null に更新しました。これにより、以前の ZeroFeatheringEffect 機能が再現されます。(I5fdaab/460426800
  • onPointSourceParamsAvailable を削除しました。別の音声空間化 API が近日中にリリースされる予定です。(I86507b/458513439)
  • オフセット サブスペース修飾子に RTL 動作を追加しました。また、レイアウト方向を無視する absoluteOffset も追加しました。(I30e4bb/474409165)

バージョン 1.0.0-alpha11

2026 年 2 月 25 日

androidx.xr.compose:compose:1.0.0-alpha11androidx.xr.compose:compose-testing:1.0.0-alpha11 がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit については、こちらをご覧ください。

新機能

  • SpatialExternalSurfacesSuperSampling パラメータを追加しました(Icd4d1

API の変更

  • レイアウト方向を認識するためのサブスペース修飾子のパディングの変更。(I53e25)
  • SpatialCapabilities が sealed になり、拡張できなくなりました。(I07aef)
  • 汎用 SpatialAlignment パラメータを受け取る SpatialRow API と SpatialColumn API は非推奨になりました。代わりに、SpatialRowSpatialColumn にそれぞれ verticalAlignment または horizontalAlignment を受け取る API を使用してください。(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-alpha10androidx.xr.compose:compose-testing:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください

API の変更

  • 非推奨の API ApplicationSubspace を削除しました(Ia6596b/468345186
  • SpatialShape を sealed インターフェースに更新しました(I7e3f5b/460426800
  • SpatialAlignment で非推奨の API を削除しました。(Ib0b61b/468011887
  • SpatialLayoutSpacer を非推奨にし、SpatialSpacer を導入しました。(I2ebf3b/466071383)
  • UserSubspace API を更新し、「遅延ロック」という用語を「ソフトロック」に置き換えました。(I9ded1b/464035984

バージョン 1.0.0-alpha09

2025 年 12 月 3 日

androidx.xr.compose:compose:1.0.0-alpha09androidx.xr.compose:compose-testing:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください

API の変更

  • コンテンツが常にユーザーを向くようにする LookAtUser 修飾子と Billboard 修飾子を追加しました。(I49b99)
  • SpatialExternalSurfacesSpatialPanelsInteractionPolicy を設定する機能を追加し、クリックやその他の 3D 入力イベントを検出できるようにしました。(Iae155)
  • 幅、高さ、奥行きを Dp 値とするサイズと requiredSize 修飾子のオーバーロードを追加しました。(I92f79)
  • ParentLayoutParamsModifier インターフェースが DelegatableSubspaceNode を拡張するようになりました。(I1a6d4)
  • ApplicationSubspace は非推奨となり、Subspace API が推奨されるようになりました。
    • Subspace API の動作が変更され、推奨されるポーズとスケールでアプリ全体のサブスペースのみが提供されるようになりました。
    • PlanarEmbeddedSubspace API が導入され、2D コンテキストに埋め込みサブスペースを提供できるようになりました。(Id3343
  • SubspaceModifier.Node API に shouldAutoInvalidate フラグを追加しました。(I93902)
  • required(Size|Width|Depth|Height) を追加しました。これにより、デベロッパーは、親の入力測定制約を無視して、@SubspaceComposable のサイズを特定の範囲に制限できます。(Ifaa78)
  • SubspaceModifier.onSizeChanged を追加しました。これにより、デベロッパーは @SubspaceComposable のサイズが変更されたときに反応するための、シンプルで集中的なコールバックを提供できます。(I994f9)
  • Volume API を削除しました。Volume API の代わりに SceneCoreEntity API を使用する必要があります。(I4162b)
  • SubspaceLayoutModifierNode.requestRelayoutinvalidateMeasurement/invalidatePlacement に分割しました。(I14805
  • デベロッパーが Compose で glTF をレンダリングできるようにする SpatialGltfModel API を追加しました。(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-alpha08androidx.xr.compose:compose-testing:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください

API の変更

  • ResizePolicyonResizeStartonResizeUpdateonResizeEnd を受け入れるように変更しました。(I7e21f)

バグの修正

  • サブスペースを含むアクティビティを破棄する際のクラッシュを防ぎました。(I595a1

バージョン 1.0.0-alpha07

2025 年 9 月 24 日

androidx.xr.compose:compose:1.0.0-alpha07androidx.xr.compose:compose-testing:1.0.0-alpha07 がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。

API の変更

  • SpatialMainPanel の KDoc を改善しました。(I27b70b/444467891
  • SpatialRowSpatialColumn などの 3D レイアウトで、主軸に沿って子を配置するための SpatialArrangement を導入しました。この新しい API は、2D Compose の使い慣れた配置オプション(StartEndCenterSpaceBetweenSpaceAroundSpaceEvenly)を提供し、LTR と RTL の両方のレイアウト方向を完全にサポートします。(I7db38b/436289959
  • SubspaceModifier.Node の基本インターフェースを追加して、拡張インターフェースの型安全性と使いやすさを改善しました。例:
    • CompositionLocalConsumerSubspaceModifierNode
    • LayoutCoordinatesAwareModifierNode
    • SubspaceLayoutModifierNode
    • CoreEntityNode(内部)(Iede00b/440599394b/440599394
  • SpatialExternalSurface の制限を解除しました(I33315b/439646773
  • サブスペース コンポーザブルに SubspaceModifier を導入し、制約パラメータをサイズ関連の SubspaceModifiers を含む SubspaceModifier に置き換えました。allowUnboundedSubspace が true の場合でも、サブスペースに無制限の制約を設定できます。(Ib06e6b/433331675
  • 移動可能でサイズ変更可能な SubspaceModifiers は、DragPolicy()ResizePolicy()SpatialPanel API と SpatialExternalSurface API の一部になったため、非推奨になりました(I397bfb/437924639
  • 空間レイアウトで LayoutDirection のサポートを追加しました。SpatialAlignment を使用するコンポーザブルは、LTR コンテキストと RTL コンテキストの両方で要素を正しく配置するようになりました。(I964bbb/436300273
  • これらの動作がサポートされているコンテナにのみ適用されるように、Panel API に Resizable パラメータと Movable パラメータを追加しました。(Id491c)
  • 幅、高さ、奥行きの正確な最小制約と最大制約を設定できる sizeInwidthInheightIndepthIn SubspaceModifiers を追加しました。(I1af09b/433330761

バージョン 1.0.0-alpha06

2025 年 8 月 13 日

androidx.xr.compose:compose:1.0.0-alpha06androidx.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-alpha05androidx.xr.compose:compose-testing:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。

新機能

  • SubspaceComposable アノテーション クラスを公開しました。(Ic2a34b/399432430)
  • 180 度と 360 度の球を表す 2 つの新しい SpatialExternalSurface コンポーザブル。(I40ef2b/391705799
  • SubspaceModifier.aspectRatio を追加しました(Ide5abb/399729509b/414762147
  • SceneCore と Compose for XR の相互運用性を改善するために、SceneCoreEntity API を追加しました。(I50bb3b/423020989
  • スケーリングされていない And GravityAligned 機能をサポートするために、GravityAlignedsubspace API を提供しました(I07359

API の変更

  • SpatialDialog()SpatialDialogProperties.dismissOnBack の押下構成に従います。(Ib453bb/416797132
  • minimumPanelDimension を新しいデフォルトの Dimension サイズ Dimensions(0.1f, 0.1f, 0.1f) に更新しました。これはメートル単位で表されるためです。(Ib852a)
  • サブスペースとオービターは、ホームスペースとアプリがバックグラウンドにあるときに内部状態を保持するようになりました。ホームスペース モードでは、フルスペース モードへの切り替えに備えて、サブスペースがシーンを設定します。(I40317b/416037751)
  • SpatialDialogs は、アプリがバックグラウンドにあるときに状態を保持するようになりました。(I6aa56)
  • ApplicationSubspace は、推奨されるスケールと位置をシステムから継承するようになりました。(I4565fb/418834194)
  • SubspaceComposableSubspaceComposable 以外のコンテキストで使用された場合に、より適切なエラー メッセージを追加し、エラーを早期にトリガーするようにしました。(Iee2aeb/416484684
  • コンポーズ可能な API の誤用時に警告が見落とされることが多いため、ExperimentalSubspaceVolumeApi を警告からエラーに更新しました。(I427aab/424864286
  • サブスペースと ApplicationSubspacerecommendedContentBoxInFullSpace によって制約されるようになりました。以前は、SpatialUser の画角によって制約されていました。(I41015b/423074142)
  • ハードコードされたサイズを使用しないように、SpatialElevation を最小サイズを使用するように更新しました(I2dbe6b/427785338
  • キー変数が変更されたときに更新されるように、SpatialAcitivityPanel をスクリムする方法を更新しました。(I0f64db/427999029)
  • VolumeConstraints.Unbounded を削除し、デフォルトの制約値を同等の値に設定するようにしました。(Ie24ecb/407938414
  • SpatialFeatheringSize は公開されなくなりました(I1c15bb/399432430
  • Compose の Placeable と区別するために、XR Placeable の名前を SubspacePlaceable に変更しました。(I74874
  • オービターの設定を削除し、新しいパラメータとして shouldRenderInNonSpatial を追加しました。また、クラス EdgeOffset を削除し、Orbiter() 関数を統合するために新しいパラメータとして orbiterOffsetType を追加しました。さらに、OrbiterEdge の名前を ContentEdge に変更しました。(Iebf3d)
  • Compose の Measurable 型と区別するために、Measurable の名前を SubspaceMeasurable に変更しました。(I9726c)
  • MeasureResult の名前を SubspaceMeasureResult に変更しました(I9f34d
  • setSubspaceContent API を削除し、Subspace コンポーザブルで Compose の setContent を使用するようにしました。(Ifff4cb/421427391b/421427391
  • MeasurePolicy の名前を SubspaceMeasurePolicy に変更しました。(I37a9bb/422553904)
  • デフォルトなしでメンバーを追加できないため、SubspaceSemanticsInfo を sealed インターフェースにしました。(I372f9b/423704068
  • SpatialExternalSurface のドキュメントを更新し、ContentSecurityLevel の名前を SurfaceProtection に変更しました(I3c460b/420982808
  • アンカーを可能にする、移動可能な修飾子のオーバーロードされたコンストラクタを提供しました。(Ic0c70)
  • ツールチップの位置プロバイダを追加しました。これにより、ツールチップをアンカーの上、下、左、右のいずれに配置するかをデベロッパーが制御できるようになりました。キャレットの Shape を受け取る API を追加しました。これにより、より多くのカスタム Shape を提供できます。(Ie513cb/374766087b/418854637)
  • CoreEntityPublishedApi として削除しました(Ifee05

バグの修正

  • SpatialDialog がレンダリング時に点滅する問題を修正しました。(Ife73cb/401619909
  • SpatialDialog がアクティビティ パネルをスクリムできない問題を修正しました。(I8ca6c b/367442109
  • XR ダイアログに一部のコンテンツが表示されない問題を修正しました(I17cd5b/418062437
  • コンテンツ内をクリックすると SpatialPopup が閉じられる問題を修正しました。(If262cb/417245722)
  • resizable().movable() をチェーンすると、SpatialPanel が新しいサイズに正しくサイズ変更されない問題を修正しました。(I02ee3b/422264230)
  • SpatialComposeVideoPlayertopBar がメニューと重なる問題を修正しました(Id33bcb/427168167
  • 角の丸みがレンダリングされない問題を修正しました(I975feb/428261830

バージョン 1.0.0-alpha04

2025 年 5 月 7 日

androidx.xr.compose:compose:1.0.0-alpha04androidx.xr.compose:compose-testing:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください

新機能

  • CompositionLocalConsumerSubspaceModifierNode インターフェースを追加して、カスタム SubspaceModifier 型がコンポジション ローカル値にアクセスできるようにしました。
  • Compose の AndroidView 実装スタイルに従う新しい SpatialPanel API を追加し、以前の ViewBased SpatialPanel を非推奨にしました。
  • 無制限の制約を表す VolumeConstraints.Unbounded コンパニオン オブジェクトを追加しました。
  • 空間化された音声ソースを許可するために、SubspaceModifier.onPointSourceParams を追加しました。
  • 公開された ApplicationSubspace が追加されました。これにより、アプリが空間コンテンツをレンダリングできる 3D 領域を定義するオプションの VolumeConstraints を提供できます。デフォルトでは、制約が指定されていない場合、サブスペースは 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 修飾子に新しいコールバック onMoveStartonMoveEnd を追加しました。onMoveStart コールバックと onMoveEnd コールバックは、ユーザーが移動可能な修飾子を使用してサブスペース コンポーザブルの移動を開始したときと終了したときに呼び出されます。
  • name パラメータが、SpatialRowSpatialPanel などの空間 API から削除されました。空間 Compose ツリーをデバッグするには、代わりに SubspaceModifier.testTag を使用します。
  • spatialElevationLevelcontent のみを含む、サポートされていない SpatialPopup のオーバーロードを削除しました。onDimissRequest をサポートするインターフェースを使用してください。
  • Movable 修飾子の onPoseChange コールバックを削除しました。代わりに onMove を使用してください。
  • SubspaceModifiers は、切り離されている場合や切り離し中の場合は、効果を適用しなくなります。
  • 既存の SpatialRow API を SpatialRowSpatialCurvedRow に分割しました。以前に SpatialRowcurveRadius パラメータを使用していた場合は、代わりに同じ動作を提供する SpatialCurvedRow を使用してください。
  • 同様に最新のシステム イメージで実行する場合、MainPanelActivityPanel にタイトルバーが表示されなくなりました。
  • アルファ修飾子とスケール修飾子がスタック可能になり、最終的に適用されるアルファ値またはスケール値に対して値を乗算するようになりました。
  • Movable 修飾子の onPoseChange コールバックが最適化され、よりスムーズなポーズ移動が可能になりました。
  • 移動可能でサイズ変更可能な修飾子がメインスレッドでコールバックを実行するようになり、状態の変更によって再コンポーズがトリガーされるようになりました。
  • レイアウト フェーズと測定フェーズに状態の監視を追加して、SubspaceLayout の状態の変更によって再レイアウトがトリガーされるようにしました。
  • 既存の修飾子をより適切に再利用できるように、修飾子チェーンの更新を最適化しました。

バグの修正

  • SpatialDialog が表示されたときにスクリムを停止しました。(Ic4594
  • 修飾子ノードが切り離されている間に行われた再レイアウト リクエストは無視されるようになりました。
  • Movable 修飾子と Resizable 修飾子によってトリガーされる再レイアウト フェーズを削除しました。
  • いずれかのディメンションがゼロに設定された場合(直接またはレイアウト計算中、たとえば SpatialRow/SpatialColumn の計算中)に発生する MainPanel() コンポーザブルのクラッシュを修正しました。代わりにパネルが非表示になります。この修正は、レイアウト フェーズ中のクラッシュに特に対処するものです。ユーザー インタラクションによるパネルのサイズ変更は別途処理されます。非表示のパネルには UI アフォーダンスがありません。
  • サイズ変更可能な修飾子の maintainAspectRatio に関する問題を修正しました。アスペクト比が維持されるようになりました。
  • ネストされたサブスペースが 1 フレームだけ誤った位置に配置される問題を修正しました。
  • 角の丸みが適用されるべきときに適用されないことがある問題を修正しました。
  • NestedSubspaces が誤った場所に 1 フレームだけ表示されなくなりました。

バージョン 1.0.0-alpha03

2025 年 2 月 26 日

androidx.xr.compose:compose:1.0.0-alpha03androidx.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-alpha02androidx.xr.compose:compose-testing:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください

新機能

  • 空間ダイアログがアクティブになったときに、アクティビティ パネルでコンテンツをスクリムできるようになりました。
  • Orbiter API を SubspaceComposable コンテキストで使用できるようになり、オービターが最も近い SubspaceLayout ベースのコンポーズ可能な親にアタッチされるようになりました。
  • カスタムの位置ベースの修飾子を許可するために、LayoutCoordinatesAwareModifierNode を導入しました。
  • アタッチ/デタッチのライフサイクル メソッドを SubspaceModifier.Node に追加しました。
  • 移動可能な修飾子に scaleWithDistance を追加しました。scaleWithDistance が有効になっている場合、移動したサブスペース要素は拡大または縮小します。また、移動前の明示的なスケールも維持されます。

API の変更

  • SessionCallbackProvider を削除し、SpatialCapabilities を推奨しました。

その他の変更

  • minSDK を 24 に減らしました。すべての Jetpack XR API は、引き続き実行時に API 34 を必要とします。
  • Orbiter EdgeOffset.innerEdgeOffset.outerEdgeOffset.overlap のコンストラクタが @Composable メソッドではなくなり、コンポーザブル以外のコンテキストで使用できるようになりました。
  • 最新の UX 仕様に合わせて空間標高レベルを更新しました。
  • SubspaceSemanticsInfo インターフェースを MeasurableLayout に実装しました。
  • 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: 空間パネルは、アプリのコンテンツを表示できるサブスペース コンポーザブルです。たとえば、動画再生、静止画、その他のコンテンツを空間パネルに表示できます。

    • Orbiter: オービターは空間 UI コンポーネントです。対応する空間パネルに接続するように設計されており、その空間パネルに関連するナビゲーション項目とコンテキスト アクション項目が含まれています。たとえば、動画コンテンツを表示する空間パネルを作成した場合は、オービター内に動画再生コントロールを追加できます。

    • ボリューム: 3D モデルなどの SceneCore エンティティを UI に対して相対的に配置します。

  • 空間レイアウト: 複数の空間パネルを作成し、SpatialRowSpatialColumnSpatialBox、および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 を使用すると、コンテンツが誤った方向に移動します。