XR için Jetpack Compose

Android XR'ın mekansal özelliklerinden yararlanan mekansal kullanıcı arayüzü düzenleri oluşturma
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta Sürümü Alfa Sürümü
12 Aralık 2024 - - - 1.0.0-alpha01

Bağımlılıkları beyan etme

XR Compose'a bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu inceleyin.

Uygulamanızın veya modülünüzün build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:

Eski

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

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

Kotlin

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

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

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

Sürüm 1.0

Sürüm 1.0.0-alpha01

12 Aralık 2024

androidx.xr.compose:compose-*1.0.0-alpha01 yayınlanır.

İlk Sürümün Özellikleri

  • XR için Jetpack Compose'un ilk geliştirici sürümü. Mevcut bir 2D uygulamayı XR'ye taşıyor veya sıfırdan yeni bir XR uygulaması oluşturuyor olsanız da XR'de mekansal kullanıcı arayüzü düzenleri oluşturmak için satırlar ve sütunlar gibi tanıdık Compose kavramlarını kullanın. Bu kitaplık, mevcut 2D Compose veya Görünüm tabanlı kullanıcı arayüzünüzü bir mekansal düzene yerleştirmenize olanak tanıyan mekansal paneller ve yörünge araçları gibi alt alan ve mekansal bileşenler sağlar. 3D modeller gibi SceneCore öğelerini kullanıcı arayüzünüze göre yerleştirmenize olanak tanıyan Volume alt uzayı birleştirilebilir öğesini kullanıma sunar. Daha fazla bilgi için bu geliştirici kılavuzunu inceleyin:

    • Subspace: Bu bileşen, uygulamanızın kullanıcı arayüzü hiyerarşisinin herhangi bir yerine yerleştirilebilir. Böylece, dosyalar arasındaki bağlamı kaybetmeden 2D ve mekansal kullanıcı arayüzü için düzenleri koruyabilirsiniz. Bu sayede, kullanıcı arayüzü ağacınızın tamamında durumu kaldırmanıza veya uygulamanızın mimarisini yeniden tasarlamanıza gerek kalmadan mevcut uygulama mimarisi gibi öğeleri XR ile diğer form faktörleri arasında paylaşabilirsiniz.

    • SpatialPanel: Mekansal panel, uygulama içeriğini görüntülemenize olanak tanıyan bir alt alan bileşimidir. Örneğin, bir mekansal panelde video oynatma, hareketsiz resimler veya başka herhangi bir içerik görüntüleyebilirsiniz.

    • Yörünge aracı: Yörünge aracı, mekansal bir kullanıcı arayüzü bileşenidir. İlgili bir mekansal panele eklenecek şekilde tasarlanmıştır ve bu mekansal panelle ilgili gezinme ve bağlamsal işlem öğeleri içerir. Örneğin, video içeriği görüntülemek için bir uzamsal panel oluşturduysanız bir yörünge aracının içine video oynatma kontrolleri ekleyebilirsiniz.

    • Hacim: 3D modeller gibi SceneCore öğelerini kullanıcı arayüzünüze göre yerleştirin.

  • Üç boyutlu yerleşim: SpatialRow, SpatialColumn, SpatialBox ve SpatialLayoutSpacer simgesini kullanarak birden fazla üç boyutlu panel oluşturabilir ve bunları üç boyutlu yerleşime yerleştirebilirsiniz. Düzeninizi özelleştirmek için SubspaceModifier simgesini kullanın.

  • Mekansal kullanıcı arayüzü bileşenleri: Bu öğeler 2D kullanıcı arayüzünüzde yeniden kullanılabilir ve mekansal özellikleri yalnızca mekansal özellikler etkinleştirildiğinde görünür.

    • SpatialDialog: Panel, yükseltilmiş bir iletişim kutusu görüntülemek için z-derinliğinde biraz geriye itilir.
    • SpatialPopUp: Panel, yükseltilmiş bir pop-up görüntülemek için z-derinliğinde biraz geriye itilir
    • SpatialElevation: SpatialElevationLevel, yükseklik eklemek için ayarlanabilir.
  • SpatialCapabilities: SpatialCapabilities, kullanıcılar uygulamanızla veya sistemle etkileşim kurarken değişebilir. Hatta uygulamanız tarafından bile değiştirilebilir (ör. ana alana veya tam alana geçme). Sorun yaşanmaması için uygulamanızın, mevcut ortamda hangi API'lerin desteklendiğini belirlemek üzere LocalSpatialCapabilities.current değerini kontrol etmesi gerekir. isSpatialUiEnabled: Üç boyutlu kullanıcı arayüzü öğeleri (ör. SpatialPanel) isContent3dEnabled: 3D nesneler isAppEnvironmentEnabled: Ortam isPassthroughControlEnabled: Uygulamanın geçiş durumunu kontrol edip edemeyeceği isSpatialAudioEnabled: Üç boyutlu ses

Bilinen Sorunlar

  • Şu anda XR için Jetpack Compose'u kullanmak üzere 30'un üzerinde bir minSDK gereklidir. Geçici bir çözüm olarak, 23 minimum SDK ile derleyip çalıştırabilmek için aşağıdaki manifest girişini <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> ekleyebilirsiniz.
  • Jetpack XR uygulamaları için şu anda AndroidManifest'de android.permission.SCENE_UNDERSTANDING izninin istenmesi gerekiyor.
  • Bir uygulama, manifest dosyasında PROPERTY_XR_ACTIVITY_START_MODE mülkünü kullanarak doğrudan Tam Alan'da başlatıldığında Etkinlikler/Uygulamalar, Tam Alan'a geçmeden önce başlangıçta Ana Alan'da açılır.
  • Hacim bileşenlerindeki glTF'ler başlangıçta yanlış konumda yanıp sönebilir.
  • Önemli ölçüde hareket ettirilmiş bir panelde SpatialDialog kullanılması, içeriğin yanlış yöne gitmesine neden olur.