Jetpack Compose للواقع المعزّز
آخر تعديل | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار التجريبي |
---|---|---|---|---|
12 شباط (فبراير) 2025 | - | - | - | 1.0.0-alpha02 |
الإعلان عن التبعيات
لإضافة تبعية على XR compose، يجب إضافة مستودع Google Maven إلى مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف التبعيات للعناصر التي تحتاج إليها في ملف build.gradle
ل
تطبيقك أو وحدتك:
Groovy
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") }
لمزيد من المعلومات عن العناصر الاعتمادية، اطّلِع على مقالة إضافة عناصر الاعتماد الخاصة بالإصدار.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا واجهت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زرّ النجمة.
اطّلِع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.
الإصدار 1.0
الإصدار 1.0.0-alpha02
12 شباط (فبراير) 2025
تم إصدار androidx.xr.compose:compose:1.0.0-alpha02
وandroidx.xr.compose:compose-testing:1.0.0-alpha02
. يحتوي الإصدار 1.0.0-alpha02 على عمليات الربط هذه.
الميزات الجديدة
- يمكن الآن أن تحجب لوحة النشاط محتواها عند تفعيل ميزة "المحادثة المكانية".
- يمكن الآن استخدام واجهة برمجة التطبيقات
Orbiter
في سياقاتSubspaceComposable
، وسيتم إرفاق "العناصر الدوّارة" بأقرب عنصر رئيسي قابل للتركيب يستند إلىSubspaceLayout
. - تمّ تقديمها في
LayoutCoordinatesAwareModifierNode
للسماح بالمُعدِّلات المستندة إلى موضع الإعلان المخصّص. - تمت إضافة طرق دورة حياة الربط/الفصل إلى
SubspaceModifier.Node
. - تمت إضافة
scaleWithDistance
إلى المفتاح المُعدِّل القابل للنقل. عند تفعيلscaleWithDistance
، سيزداد حجم عنصر الفضاء الفرعي المنقول أو يتقلّص. وسيحتفظ أيضًا بأي مقياس صريح كان متوفّرًا قبل النقل.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة
SessionCallbackProvider
واستبدالها بـSpatialCapabilities
.
التغييرات الأخرى
- تم خفض
minSDK
إلى 24. لا تزال جميع واجهات برمجة تطبيقات Jetpack XR تتطلّب استخدام المستوى 34 من واجهة برمجة التطبيقات أثناء التشغيل. - لم تعُد وظائف الإنشاء
Orbiter
EdgeOffset.inner
وEdgeOffset.outer
وEdgeOffset.overlap
طرقًا@Composable
، ما يسمح باستخدامها في السياقات غير القابلة للتركيب. - عدِّل مستويات الارتفاع المكاني لتتطابق مع أحدث مواصفات تجربة المستخدم.
- تنفيذ واجهة
SubspaceSemanticsInfo
فيMeasurableLayout
- تمت إعادة تسمية
SubspaceModifierElement
إلىSubspaceModifierNodeElement
.
إصلاح الأخطاء
- إصلاحات لتحسين ثبات طلب
SubspaceModifier
من المفترض أن يعملSubspaceModifier
بشكل أكثر موثوقية. من المفترض أن يكون بإمكانك الآن استخدام المُعدِّل "إزاحة" و"تدوير" و"تصغير/تكبير" و"قابل للنقل" و"قابل لتغيير الحجم" بأي ترتيب.
الإصدار 1.0.0-alpha01
12 كانون الأول (ديسمبر) 2024
تم إصدار androidx.xr.compose:compose-*1.0.0-alpha01
.
ميزات الإصدار الأولي
الإصدار الأولي من Jetpack Compose للمطوّرين في الواقع المعزّز استخدِم مفاهيم Compose المألوفة، مثل الصفوف والأعمدة، لإنشاء تنسيقات واجهة مستخدم مكانية في الواقع المعزّز، سواء كنت بصدد نقل تطبيق ثنائي الأبعاد حالي إلى الواقع المعزّز أو إنشاء تطبيق جديد للواقع المعزّز من الصفر. توفّر هذه المكتبة عناصر قابلة للتجميع في المساحات الفرعية والمساحات المكانية، مثل اللوحات المكانية وعناصر الالتفاف، التي تتيح لك وضع واجهة المستخدم الحالية المستندة إلى Compose أو Views في تنسيق مكاني. ويقدّم هذا الإصدار مساحة فرعية قابلة للتجميع، ما يتيح لك وضع عناصر SceneCore، مثل النماذج الثلاثية الأبعاد، بالنسبة إلى واجهة المستخدم. اطّلِع على مزيد من المعلومات في دليل المطوّر هذا:
Subspace
: يمكن وضع هذا المكوّن القابل للتجميع في أي مكان ضمن التسلسل الهرمي لواجهة المستخدم في تطبيقك، ما يتيح لك الاحتفاظ بتنسيقات لواجهة المستخدم ثنائية الأبعاد وواجهة المستخدم المكانية بدون فقدان السياق بين الملفات. يسهّل ذلك مشاركة عناصر مثل بنية التطبيق الحالية بين الواقع المعزّز وأشكال الأجهزة الأخرى بدون الحاجة إلى رفع الحالة من خلال شجرة واجهة المستخدم بالكامل أو إعادة هندسة تطبيقك.SpatialPanel: اللوحة المكانية هي مساحة فرعية قابلة للتجميع تتيح لك عرض محتوى التطبيق. على سبيل المثال، يمكنك عرض تشغيل الفيديو أو الصور الثابتة أو أي محتوى آخر في لوحة مكانية.
المدار: هو مكوّن لواجهة مستخدِم مكانية. تم تصميمه ليتم إرفاقه بلوحة مكانية مقابلة، ويحتوي على عناصر التنقّل والإجراءات المستندة إلى السياق المرتبطة بهذه اللوحة المكانية. على سبيل المثال، إذا أنشأت لوحة مكانية لعرض محتوى الفيديو، يمكنك إضافة عناصر التحكّم في تشغيل الفيديو داخل مسار مداري.
الحجم: يمكنك وضع عناصر SceneCore، مثل النماذج الثلاثية الأبعاد، بالنسبة إلى واجهة المستخدم.
التنسيق المكاني: يمكنك إنشاء عدة لوحات مكانية ووضعها ضمن تنسيق مكاني باستخدام
SpatialRow
وSpatialColumn
وSpatialBox
وSpatialLayoutSpacer
. استخدِمSubspaceModifier
لتخصيص التنسيق.مكوّنات واجهة المستخدم المكانية: يمكن إعادة استخدام هذه العناصر في واجهة المستخدم ثنائية الأبعاد، ولن تكون سماتها المكانية مرئية إلا عند تفعيل الإمكانات المكانية.
SpatialDialog
: سيتم دفع اللوحة للخلف قليلاً في العمق (z) لعرض مربّع حوار مرتفع.SpatialPopUp
: سيتم دفع اللوحة للخلف قليلاً في العمق (z) لعرض نافذة منبثقة مرتفعة.SpatialElevation
: يمكن ضبطSpatialElevationLevel
لإضافة ارتفاع.
SpatialCapabilities: يمكن أن تتغيّر الإمكانات المكانية عندما يتفاعل المستخدمون مع تطبيقك أو النظام، أو يمكن أن يغيّرها تطبيقك نفسه، على سبيل المثال، الانتقال إلى "المساحة الرئيسية" أو "المساحة الكاملة". لتجنُّب حدوث مشاكل، يجب أن يتحقّق تطبيقك من
LocalSpatialCapabilities.current
لتحديد واجهات برمجة التطبيقات المتوافقة في البيئة الحالية. isSpatialUiEnabled
: عناصر واجهة المستخدم المكانية (مثل SpatialPanel)isContent3dEnabled
: الأجسام الثلاثية الأبعادisAppEnvironmentEnabled
: البيئةisPassthroughControlEnabled
: ما إذا كان بإمكان التطبيق التحكّم في حالة السماح بالمرورisSpatialAudioEnabled
: الصوت المكاني
المشاكل المعروفة
- يجب حاليًا استخدام الإصدار 30 من حزمة تطوير البرامج (SDK) كحد أدنى لاستخدام Jetpack Compose مع تطبيقات الواقع المعزّز. كحل بديل، يمكنك إضافة إدخال البيان التالي
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
لتتمكّن من إنشاء التطبيق وتشغيله باستخدام الإصدار 23 من حزمة تطوير البرامج (SDK) كحد أدنى. - تتطلّب تطبيقات Jetpack XR حاليًا طلب إذن
android.permission.SCENE_UNDERSTANDING
في ملف AndroidManifest. - عند تشغيل تطبيق مباشرةً في "المساحة الكاملة" باستخدام السمة
PROPERTY_XR_ACTIVITY_START_MODE
في البيان، يتم فتح "الأنشطة" أو "التطبيقات" في البداية في "المساحة الرئيسية" قبل الانتقال إلى "المساحة الكاملة". - قد يلمع ملف glTF في "العناصر القابلة للتجميع في الحجم" في البداية في مكان غير صحيح.
- سيؤدي استخدام SpatialDialog في لوحة تم نقلها بشكل كبير إلى دفع المحتوى في الاتجاه الخطأ.