XR için Jetpack Compose
Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürüm |
---|---|---|---|---|
12 Şubat 2025 | - | - | - | 1.0.0-alpha02 |
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.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.0
Sürüm 1.0.0-alpha02
12 Şubat 2025
androidx.xr.compose:compose:1.0.0-alpha02
ve androidx.xr.compose:compose-testing:1.0.0-alpha02
yayınlandı. 1.0.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Etkinlik paneli artık bir uzamsal iletişim etkinleştirildiğinde içeriğini karartabilir.
Orbiter
API artıkSubspaceComposable
bağlamlarında kullanılabilir ve Orbiter'ları en yakınSubspaceLayout
tabanlı birleştirilebilir üst öğelerine ekler.- Özel konumlandırmaya dayalı değiştiricilere izin vermek için
LayoutCoordinatesAwareModifierNode
kullanıma sunuldu. SubspaceModifier.Node
için ekleme/çıkarma yaşam döngüsü yöntemleri eklendi.- Hareketli değiştiriciye
scaleWithDistance
eklendi.scaleWithDistance
etkinleştirildiğinde, taşınan alt alan öğesi büyür veya küçülür. Ayrıca, hareket etmeden önceki açık ölçeği de korur.
API Değişiklikleri
SessionCallbackProvider
,SpatialCapabilities
için kaldırıldı.
Diğer değişiklikler
minSDK
24'e düşürüldü. Tüm Jetpack XR API'leri, çalışma zamanında API 34'ü kullanmaya devam eder.Orbiter
EdgeOffset.inner
,EdgeOffset.outer
veEdgeOffset.overlap
kurucuları artık@Composable
yöntemleri değildir. Bu sayede, birleştirilebilir olmayan bağlamlarda kullanılabilirler.- Uzamsal yükseklik seviyelerini en son kullanıcı deneyimi spesifikasyonuyla eşleşecek şekilde güncelleyin.
SubspaceSemanticsInfo
arayüzünüMeasurableLayout
'a uygulayın.SubspaceModifierElement
,SubspaceModifierNodeElement
olarak yeniden adlandırıldı.
Hata düzeltmeleri
SubspaceModifier
sıralamasını sabitlemek için düzeltmeler.SubspaceModifier
daha güvenilir şekilde davranacaktır. Ofset, döndürme, ölçek, taşınabilir ve yeniden boyutlandırılabilir değiştirici artık herhangi bir sırada kullanılabilir.
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ı derlenebilir öğ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
veSpatialLayoutSpacer
simgesini kullanarak birden fazla üç boyutlu panel oluşturabilir ve bunları üç boyutlu yerleşime yerleştirebilirsiniz. Düzeninizi özelleştirmek içinSubspaceModifier
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 itilirSpatialElevation
: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 nesnelerisAppEnvironmentEnabled
: OrtamisPassthroughControlEnabled
: Uygulamanın geçiş durumunu kontrol edip edemeyeceğiisSpatialAudioEnabled
: Üç 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 Derlemeleri'ndeki 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.