‫Jetpack Compose للواقع الممتد

يمكنك إنشاء تصاميم واجهة مستخدم مكانية بشكل تعريفي تستفيد من الإمكانات المكانية في Android XR.
آخر تحديث الإصدار المستقر إصدار محتمل الإصدار التجريبي الإصدار الأولي
‫21 أكتوبر 2026 - - 1.0.0-beta02 -

تحديد الاعتماديات

لإضافة اعتمادية على XR Compose، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:

Groovy

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

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

Kotlin

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

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

لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات الإصدار.

الملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء مشكلة جديدة

يُرجى الاطّلاع على مستندات Issue Tracker لمزيد من المعلومات.

الإصدار 1.0

الإصدار ‎1.0.0-beta02

‫21 أكتوبر 2026

تم طرح androidx.xr.compose:compose:1.0.0-beta02 وandroidx.xr.compose:compose-testing:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تستهدف المكتبات الآن الإصدار 2.2 من Kotlin وتتطلّب الإصدار 2.2 من kotlinc ‏ (I82396، b/498369605)
  • تمت إعادة تسمية المَعلمة halfLifeMs في FollowMode.soft() إلى halfLifeMillis. (I39187)
  • تم تحويل PitchLimits إلى @JvmInline value class مع تجميع قيمتَين عائمتَين في Long لإزالة عمليات تخصيص العناصر. (Id43c3)
  • تمت إضافة مَعلمة جديدة لـ FollowMode.soft: المَعلمات halfLifeMs وstartDelay وstartThresholds. تمت إزالة المَعلمة durationMs لأنّها لم تعد مطلوبة أثناء الانتقال من خوارزمية smoothStep إلى خوارزمية exponentialDecay. (If0140)
  • أزِل التحميل الزائد لـ SpatialActivityPanel الذي تم إيقافه نهائيًا. استخدِم التحميل الزائد لـ SpatialActivityPanel الذي يقبل SpatialActivityPanelController بدلاً من ذلك. (I5abc3)
  • يمكنك تفعيل الانتقالات بين المحتوى الثلاثي الأبعاد والثنائي الأبعاد القابل للتركيب ضمن نشاط واحد في FullSpaceMode. يتم التحكّم في هذا التغيير من خلال SpatialComposeFlags.isMainPanelResetOnSubspaceDisposeEnabled. (I4e237)
  • تم عرض تحميل زائد تجريبي لـ Subspace يأخذ مَعلمة FollowTarget لدعم المحتوى التالي. (Iec1a9)
  • تمت إزالة المعدِّلات القابلة للنقل التي تم إيقافها نهائيًا. استخدِم بدلاً من ذلك المعدِّل الجديد القابل للنقل والذي يقبل MovePolicy الجديد كمَعلمة. (Ib135d)
  • إزالة DragPolicy المتوقّف نهائيًا يمكنك استخدام SubspaceModifier.movable() كبديل. (I108d4)
  • تم إيقاف التحميلات الزائدة لـ Slider وRangeSlider غير المعتمدة على الحالة نهائيًا لصالح الإصدارات المعتمدة على الحالة. تمت إعادة تسمية activeRangeStart وactiveRangeEnd في RangeSliderState إلى startValue وendValue، مع إيقاف واجهات برمجة التطبيقات القديمة غير المروَّج لها والتجريبية لـ Slider واستبدالها بـ DeprecationLevel.HIDDEN. (If8995)

إصلاح الأخطاء

  • تم إصلاح RotateToLookAtUser من خلال تقديم poseInActivitySpace لضمان حساب الوضعية الصحيحة لجميع أنواع المساحات الفرعية، بما في ذلك تلك المرتبطة بالمثبّتات أو المستخدمين.Ica367b
  • تم إصلاح عطل في "القيود" (Constraints) عند ربط Orbiter بلوحات كبيرة (I8c4bf)
  • تم إصلاح خلل في SubspaceLayoutNode حيث تسبّب removeAll() في تخصيصات ArrayList غير ضرورية. تم أيضًا إصلاح أداء احتساب العمق. I34a10a
  • تم تحديث تبعية androidx.lifecycle:lifecycle-runtime إلى الإصدار 2.10.0. هذا الإصدار مطلوب لتشغيل عمليات فحص lint المجمّعة لوقت تشغيل مراحل النشاط مع الإصدار 9.5.0-alpha04 من AGP أو الإصدارات الأحدث. (I99bfd، b/556807521)
  • تحسين kdocs ذات الصلة بـ AudioOutputProvider لتوضيح أنّه يجب عدم إعادة استخدامها مع نُسخ متعددة من ExoPlayer (I6b18e)
  • إصلاح الأخطاء الإملائية والنحوية البسيطة في kdoc ‏ (Id3ba6)

المشاكل المعروفة

  • يعتمد هذا الإصدار من "androidx.xr.compose" على "androidx.xr.scenecore:1.0.0-rc01" الذي يتضمّن مشكلة تسرُّب ذاكرة معروفة. في إعدادات التصميم، يمكنك تجاوز تبعية SceneCore بشكل صريح إلى الإصدار 1.0.0، والذي يتضمّن إصلاحًا لمشكلة تسرُّب الذاكرة.

الإصدار ‎1.0.0-beta01

‫23 سبتمبر 2026

تم طرح androidx.xr.compose:compose:1.0.0-beta01 وandroidx.xr.compose:compose-testing:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تمت إزالة DragPolicy التي تم إيقافها نهائيًا. يمكنك استخدام SubspaceModifier.movable() كبديل. (I108d4)
  • تمت إزالة السمة ResizePolicy المتوقفة نهائيًا واستخداماتها في SpatialPanel وSpatialExternalSurface. إزالة دالة SubspaceModifier.resizable تم إيقافها نهائيًا استخدِم SubspaceModifier.resizable الجديد مع ResizePolicy جديد بدلاً من ذلك. (I59e6b)
  • تمت إضافة المَعلمة isPitchUpdateEnabled للسماح بتفعيل تتبُّع درجة الصوت أو إيقافه بشكل مستقل. (Ie9e86)
  • تمت إزالة إمكانية قبول القيمة الفارغة من pitchLimits وتمت إعادة تسمية PitchLimits.UNCONSTRAINED إلى PitchLimits.FullRange. (I0154f)
  • أصبحت دالة ExposedDropdownMenu الآن دالة إضافة في ExposedDropdownMenuBoxScope بدلاً من دالة تابعة. قد تحتاج إلى تعديل الرمز من خلال استيراد جديد. (Ie8a65)
  • تمت إزالة فئة SurfaceProtection المتوقفة نهائيًا. يمكنك استخدام SpatialExternalSurfaceProtection كبديل. (Iab2c6)
  • تم إيقاف دالة Orbiter التي تستخدم OrbiterPoseProvider نهائيًا لصالح الدالة التي تستخدم SpatialAlignment. (I4d12b)
  • يتطلّب SpatialActivityPanel الآن استخدام SpatialActivityPanelController (يتم إنشاء مثيل له باستخدام rememberSpatialActivityPanelController) لتشغيل الأنشطة المضمّنة وإدارتها. (Id25c6)
  • تمت إزالة المَعلمة upDirection من rotateToLookAtUser وإضافة مَعلمات قيود التدوير (isYawUpdateEnabled وpitchLimits). (I1370a)

إصلاح الأخطاء

  • تم إصلاح مشاكل متنوّعة في InteractionPolicy. حدث عطل في حال وقوع حدث إدخال مباشرةً عند بدء دالة مركّبة أو دالة فرعية (مثل Orbiter) تسلسل التخلص من الموارد. يتم أيضًا إصلاح مشكلة تلقّي عنصر فرعي لأحداث التمرير. (Ifc477)
  • تم تقليل حجم اللوحة في RotateToLookAtUserActivity لمنع اقتصاص المحتوى على الأجهزة ذات مجال الرؤية الأصغر. (I8d672)

المشاكل المعروفة

  • هناك مشكلة في لوحات Compose XR، حيث قد يؤدي إنشاء العديد من اللوحات في نشاط واحد إلى حدوث بعض التلف في ما يتم عرضه حتى بعد إزالة اللوحات.

الإصدار ‎1.0.0-alpha17

‫12 أغسطس 2026

تم طرح androidx.xr.compose:compose:1.0.0-alpha17 وandroidx.xr.compose:compose-testing:1.0.0-alpha17. يتضمّن الإصدار 1.0.0-alpha17 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • يجب إزالة فئة القيمة Meter، لأنّه تم استبدالها بـ virtualPixelDensity في Scenecore. (I690ee)
  • أصبحت واجهة برمجة التطبيقات SpatialGltfModel تجريبية الآن ويجب الموافقة على استخدامها. (I4557e)
  • السماح بتغيير حجم system وجعله قابلاً للإلغاء (Ib0093)
  • تم عرض Density في SubspaceSemanticsInfo للاختبار. (I2e826)
  • إعادة تسمية الخيار التلقائي ResizePolicy إلى system وإضافة خيار Default جديد بدون مَعلمات (Ic8b16)
  • وضع علامة "تجريبي" على FollowTarget أصبحت واجهة برمجة التطبيقات FollowingSubspace بأكملها تجريبية الآن. (Id4ee3)
  • إزالة واجهات برمجة التطبيقات GltfAnimation (Ic2894)
  • تمت إعادة تسمية طريقة MovePolicy.default() التي تتضمّن مَعلمات إلى MovePolicy.system(). تم تقديم سمة val MovePolicy.Default لتمثيل سلوك الحركة التلقائي العادي. (Iedcc9)
  • توسيع متطلبات الموافقة على ExperimentalMoveAnchorPolicy لتشمل PlaneSemantic وPlaneOrientation (Ief927)
  • إزالة resetMins من VolumeConstraints.offset (Ib2f2f)
  • تمت إزالة الدالة SceneCoreEntitySizeAdapter التي تم إيقافها نهائيًا. (Ib6722)
  • تمت إزالة التحميل الزائد المتوقّف نهائيًا لـ Subspace باستخدام allowUnboundedSubspace. (I8e97f)
  • تمت إزالة التحميل الزائد لمعدِّل الدلالات المتوقّفة نهائيًا. (I4ac10)

إصلاح الأخطاء

  • تم إصلاح مشكلة تسبُّب العناصر الفرعية لـ Composable مع InteractionPolicy في تشغيل أحداث الإدخال (Icdba6)

الإصدار ‎1.0.0-alpha16

‫15 يوليو 2026

تم طرح androidx.xr.compose:compose:1.0.0-alpha16 وandroidx.xr.compose:compose-testing:1.0.0-alpha16. يتضمّن الإصدار 1.0.0-alpha16 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • إزالة واجهات برمجة التطبيقات ComponentOverride (I820c4)
  • تم تصنيف واجهتَي برمجة التطبيقات GltfAnimation وSpatialGltfModelAnimation على أنّهما تجريبيتان. تم تحويل بعض السمات إلى دوال getter. (I8d689، b/524771027)
  • تم إصلاح سلوك الكثافة الإجمالي من خلال ضبط التحويل بين المتر ووحدات البكسل ليكون ثابتًا. تم إيقاف Meter.kt نهائيًا، ويمكن الآن استخدام Session.scene.virtualPixelDensity كبديل. (I122ff، b/430097855، b/474168798)
  • تعديل المُعدِّل القابل لتغيير الحجم لاستخدام ResizePolicy بدلاً من مُعدِّلَين (I7fb0f، b/496257436، b/519672992)
  • تمت إضافة مَعلمة tolerance: Dp = Dp(0.5f) إلى جميع تأكيدات المساواة العامة في الموضع والسمات ذات النقطة العائمة في SubspaceAssertions.kt. تم توثيق سلوك التسامح التلقائي (0.5.dp) بالكامل. (I266cb، b/521491915)
  • تمت إضافة دالة overload قابلة للنقل مع مَعلمة movePolicy وإيقاف transformingMovable وmovable نهائيًا (Ic88c1، b/481781189)
  • تمت إضافة خيارات جديدة غير تفاعلية لعنصر القائمة العادي وعنصر القائمة المقسَّمة التي تتّبع مواصفات Material Expressive. تم إيقاف الإصدار غير التعبيري نهائيًا. (Ide4de، b/491994186)
  • بالنسبة إلى Subspace، تم إيقاف المَعلمة allowUnboundedSubspace نهائيًا وإخفاؤها. يجب الآن تحقيق السلوك غير المحدود باستخدام SubspaceModifier.requiredSizeIn(maxWidth = Dp.Infinity, maxHeight = Dp.Infinity, maxDepth = Dp.Infinity) في معدِّل Subspace. تمّت إزالة المَعلمة allowUnboundedSubspace من FollowingSubspace. (Ia72ae، b/433624021)
  • تم تحويل Session.create إلى دالة تعليق. (I5d27f)
  • تمت إضافة SubspaceModifier.spatializedAudioOutput الذي يسمح بتشغيل الصوت المكاني من خلال ExoPlayer أو من خلال SoundEffectPlayer (I46697، b/489421980، b/497867019)
  • تم تعديل ComponentActivity.requestHomeSpace() وrequestFullSpace() لعرض SpaceRequestResult من أجل التحقّق من الحالة. (If1672)
  • تم تعديل AnchorEntity ليصبح اسمه AnchorSpace (Ifa95e، b/513619219)
  • تمت إزالة القيود عن طريقة fromResource من SpatialGltfModelSource (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)
  • تمت إعادة تسمية position إلى align في SpatialAlignment وإزالة طرق الإزاحة الاتجاهية الفردية لصالح واجهة برمجة تطبيقات align موحّدة. (I9bdb2، b/479805937)
  • تمت إزالة واجهات برمجة التطبيقات المتوقّفة نهائيًا الخاصة بوضع المساحة من SpatialConfiguration. (I1ef5c، b/458712461)
  • تم طرح SubspaceSemanticsConfiguration. هذا هو إعداد سمات الدلالات لعقدة مكانية. تعرض هذه الفئة طرق طلب البحث بأمان لدلالات ثلاثية الأبعاد بدون تسريب إمكانات الدلالات الأساسية ثنائية الأبعاد إلى المستهلكين الخارجيين. (Id025e، b/460427288)
  • تم تقديم SubspaceSemanticsPropertyReceiver: وهو برنامج تضمين مخصّص يقتصر على خصائص حاوية التنسيق الثلاثي الأبعاد للحقول الصالحة (في البداية testTag وcontentDescription). (I5cf5c، b/460427288)

إصلاح الأخطاء

  • تم تعديل السمة hasContentDescription الخاصة بالمعدِّل الدلالي ليتم ضبطها تلقائيًا على مطابقة السلسلة الفرعية. (I08214)
  • تمت إضافة FollowBehavior.ExponentialDecay() المقيّد الذي يوفّر سلوك تتبُّع سلسًا موجَّهًا بواسطة الفيزياء المرنة. (I7449c، b/485639909، b/500493335)

ستتأثر معظم واجهات برمجة التطبيقات بهذا التغيير. على وجه التحديد، سيتم الآن حلّ LocalSession CompositionLocal وجميع CompositionLocals التي تعتمد على LocalSession (مثل LocalSpatialConfiguration وLocalSpatialCapabilities وما إلى ذلك) إلى null أو إصداراته غير المتوافقة مع XR قبل بدء Session.

بعد توفّر Session، سيتم تشغيل إعادة الإنشاء بالحالة الصحيحة. (I0cfa4، b/514712835، b/514712835)

  • تم توضيح المستندات الخاصة بـ ComponentActivity.requestHomeSpace وComponentActivity.requestFullSpace في ما يتعلق بسلوك التعليق والإلغاء والتزامن. تم تعديل الاختبارات للتحقّق من انتشار CancellationException. (I22f75، b/493289528)

الإصدار 1.0.0-alpha15

‫17 يونيو 2026

تم طرح androidx.xr.compose:compose:1.0.0-alpha15 وandroidx.xr.compose:compose-testing:1.0.0-alpha15. يتضمّن الإصدار 1.0.0-alpha15 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تم إيقاف ResizePolicy نهائيًا والمعدِّل القديم القابل لتغيير الحجم، وتم استبدالهما بـ SubspaceModifier.resizable جديد وSubspaceModifier.transformingResizable. (I9e4bc)
  • تم تعديل واجهات برمجة التطبيقات SpatialGltfModel: تمت إضافة ميزة تحميل النماذج من الموارد عبر SpatialGltfModelSource.fromResource، وتمت إعادة تسمية السرعة إلى playbackSpeed في SpatialGltfModelAnimation، وتمت إضافة طريقة resume()‎. ‫SpatialGltfModelStatus.Loaded وLoading هما الآن عنصران. (I523de)
  • تم وضع علامة على rotateToLookAtUser كواجهة برمجة تطبيقات تجريبية. (I86c16)
  • تم نقل المتغيّر المحمي targetCurrentPose وإعادة تسميته إلى المتغيّر المحلي currentTargetPoseMeter. (Ia557c)
  • تعديل مستندات kdocs الخاصة بـ SpatialPanel وSpatialExternalSurface لتشمل مكان عرض العنصر ضمن حجم تنسيقه (I72104)
  • تم تضمين منطق تحميل SpatialGltfModel ضمن SpatialGltfModelState وتوضيح سلوك الفشل. (Ibe98b)
  • Clarified depth in SubspaceModifer.size kdocs (I0f84f)

الإصدار ‎1.0.0-alpha14

‫19 مايو 2026

تم طرح androidx.xr.compose:compose:1.0.0-alpha14 وandroidx.xr.compose:compose-testing:1.0.0-alpha14. يتضمّن الإصدار 1.0.0-alpha14 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تم تقديم transformingMovable للحركة الثلاثية الأبعاد التلقائية التي يتعامل معها النظام، وتم تقديم تحميل زائد جديد لـ movable للتعامل مع سلوكيات الحركة المخصّصة. (I50960)
  • تمت إزالة الحقل "SpatialGltfModel.fromData()". (I4d083)
  • تمت إضافة واجهة جديدة لعقدة المُعدِّل، وهي SubspaceMeasuredSizeAwareModifierNode، والتي توفّر دالة ردّ اتصال onRemeasured بعد مرحلة القياس. SubspaceLayoutAwareModifierNode الآن هذه الواجهة الجديدة. تم تعديل المُعدِّل onSizeChanged لاستخدام onRemeasured، ما يضمن تفعيل دالة الاستدعاء بعد القياس مباشرةً، وليس بعد تحديد الموضع. (Iafbae)
  • تم تعديل InteractionPolicy إلى Interface (I0ff30)
  • تم تحديث Compose compileSdk إلى واجهة برمجة التطبيقات 37. وهذا يعني أنّه يجب استخدام الإصدار 9.2.0 أو إصدار أحدث من "مكوّن Android الإضافي لـ Gradle" عند استخدام Compose. (Id45cd)
  • تم تعديل Size مستند kdoc ‏ (Iefa9a)

الإصدار ‎1.0.0-alpha13

‫6 مايو 2026

تم طرح androidx.xr.compose:compose:1.0.0-alpha13 وandroidx.xr.compose:compose-testing:1.0.0-alpha13. يتضمّن الإصدار 1.0.0-alpha13 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • لا تزال واجهة برمجة التطبيقات Orbiter API في انتظار تغييرات إضافية، لذا ننصحك بإيقاف إشعارات الإيقاف النهائي لـ Orbiters ومتابعة تغييرات Orbiter في الإصدارات القادمة.
  • على المستخدمين الذين يستعينون بـ SceneCoreEntity لعرض ملفات glTF التأكّد من تمرير session.scene.activitySpace إلى المَعلمة parent لطلب GltfModel.create لضمان عرض ملفات glTF.
  • إضافة واجهة برمجة التطبيقات SpatialGltfModel للسماح للمطوّرين بإضافة ملفات Gltf إلى تطبيقات Compose For XR ويمكن للمطوّرين أيضًا الاستعلام عن الصور المتحركة والعُقد داخل نماذج Gltf. (I8b542، b/495422586)
  • تم تغيير SceneCoreEntitySizeAdapter من فئة إلى واجهة (I5a784، b/475292310)
  • تمت إعادة تسمية "SurfaceProtection" إلى "SpatialExternalSurfaceProtection". تم تعديل SpatialExternalSurface مستند kdoc ‏ (Ifad0a، b/485231082)
  • إيقاف currentWindowAdaptiveInfo نهائيًا وتقديم الإصدار الثاني منه (I40ecf، b/424442112)
  • أصبح المُعدِّل resizable متاحًا للجميع ويمكن تطبيقه على المجموعات (مثل SpatialRow). (I2bcf6، b/348483527، b/489753178، b/479530787)
  • أصبح المعدِّل "movable" متاحًا للجميع الآن. يعمل هذا المُعدِّل بشكل جيد حاليًا مع SpatialPanels وSpatialExternalSurface، ولكن الهدف هو إتاحة هذه الميزة بشكل جيد لجميع SubspaceComposables. (I9a3cd، b/479530787، b/478935063، b/478935063)
  • تم وضع علامة @Immutable على SpatialEnterTransition وSpatialExitTransition (If1710، b/487757837)
  • تم وضع علامة "محظور" على واجهة برمجة التطبيقات SpatialGltfModel لهذا الإصدار في انتظار إجراء اختبارات إضافية. (Ibf003، b/466090694)
  • تمت إعادة تسمية DeviceTrackingMode.LAST_KNOWN إلى SPATIAL_LAST_KNOWN (مع استخدام عنصر احتياطي متوقّف نهائيًا)، وتمت إضافة INERTIAL_LAST_KNOWN لتتبُّع 3DoF، وتمت إضافة TRACKING_DEGRADED إلى TrackingState. (Ie661c، b/445466590)
  • إزالة SpatialLayoutSpacer المتوقفة نهائيًا (I7b36c)
  • إزالة واجهة برمجة التطبيقات الخاصة بالحشو التي تم إيقافها نهائيًا (If1886)
  • تمت إضافة floatRange إلى قيم الانحياز. تمت إزالة القيمة التلقائية للسمة LayoutDirection (I9d74e)

إصلاح الأخطاء

  • تمت إضافة عيّنات تعليمات برمجية ومستندات KDoc لـ SpatialColumn وSpatialRow وSpatialCurvedRow. (Iaf54f، b/495777633)

الإصدار 1.0.0-alpha12

‫25 مارس 2026

تم طرح androidx.xr.compose:compose:1.0.0-alpha12 وandroidx.xr.compose:compose-testing:1.0.0-alpha12. يتضمّن الإصدار 1.0.0-alpha12 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • أضِف واجهة برمجة التطبيقات SpatialGltfModel وواجهات برمجة التطبيقات SpatialGltfModelAnimation لعرض ملفات glTF والتحكّم في الصور المتحركة. تم تغيير SpatialGltfModelState إلى AutoCloseable، ويجب الآن إغلاقه لإخلاء موارده. (I11fde، b/466065486، b/481379924). ومع ذلك، تم وضع علامة على واجهة برمجة التطبيقات SpatialGltfModel على أنّها محظورة لهذا الإصدار في انتظار إجراء اختبارات إضافية. (Ibf003، b/466090694)
  • تمت إضافة تحميل زائد فارغ متوقّف نهائيًا لـ SubspaceModifier.rotate. (Idceb6)
  • تمت إعادة تسمية الدالة SpatialSmoothFeatheringEffect إلى spatialSmoothFeatheringEffect ونقلها إلى وحدة رسم. تم تعديل قيمة التمويه التلقائية في SpatialExternalSurface إلى "فارغة"، ما يحاكي وظيفة ZeroFeatheringEffect القديمة. (I5fdaa، b/460426800)
  • تمت إزالة جهة الاتصال "onPointSourceParamsAvailable". ستتوفّر واجهة برمجة تطبيقات مختلفة للصوت المكاني في المستقبل القريب. (I86507، b/458513439)
  • تمت إضافة سلوك RTL لمعدِّلات المساحة الفرعية للإزاحة. تمت أيضًا إضافة absoluteOffset لتجاهل اتجاه التنسيق. (I30e4b، b/474409165)

الإصدار 1.0.0-alpha11

‫25 فبراير 2026

تم طرح androidx.xr.compose:compose:1.0.0-alpha11 وandroidx.xr.compose:compose-testing:1.0.0-alpha11. يتضمّن الإصدار 1.0.0-alpha11 هذه التعديلات.

الميزات الجديدة

  • إضافة المَعلمة SuperSampling إلى SpatialExternalSurfaces‏ (Icd4d1)

المشاكل المعروفة

  • يمكن أن تؤدي مشكلة في SurfaceEntity في SceneCore إلى تعطُّل التطبيقات عند إنشاء نُسخ من SpatialExternalSurface. تم حلّ هذه المشكلة في الإصدارين androidx.xr.scenecore:scenecore-*:1.0.0-alpha13 وandroidx.xr.compose:compose:1.0.0-alpha12 والإصدارات اللاحقة. يجب تحديث التطبيقات المتأثرة إلى أحدث الإصدارات.

التغييرات في واجهة برمجة التطبيقات

  • تغييرات في حشو معدِّل Subspace لمراعاة اتجاه التنسيق (I53e25)
  • تم إغلاق "SpatialCapabilities" الآن ولا يمكن تمديدها. (I07aef)
  • تم إيقاف واجهتَي برمجة التطبيقات SpatialRow وSpatialColumn اللتين تقبلان مَعلمة SpatialAlignment عامة نهائيًا. بدلاً من ذلك، استخدِم واجهات برمجة التطبيقات التي تقبل إما verticalAlignment أو horizontalAlignment لـ SpatialRow وSpatialColumn على التوالي. (Iec390)
  • دمج واجهات برمجة التطبيقات الخاصة بدالة SubspaceLayout التي تتيح التحميل الزائد (Idd30a)
  • تمت إعادة تسمية SubspaceModifier.lookAtUser إلى rotateToLookAtUser والمعلمة up إلى upDirection. (Icafb8)
  • جعل SpatialRow دالة مضمّنة (Ia2f20)
  • جعل SpatialColumn دالة مضمّنة (I681be)
  • تمت إزالة واجهة برمجة التطبيقات الخاصة باللوحة الإعلانية (Ib76cd)

الإصدار 1.0.0-alpha10

‫28 يناير 2026

تم طرح androidx.xr.compose:compose:1.0.0-alpha10 وandroidx.xr.compose:compose-testing:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • إزالة واجهة برمجة التطبيقات المتوقّفة نهائيًا - ApplicationSubspace (Ia6596، b/468345186)
  • تم تعديل SpatialShape إلى واجهة مغلقة (I7e3f5، b/460426800)
  • إزالة واجهات برمجة التطبيقات المتوقفة نهائيًا في الإصدار SpatialAlignment (Ib0b61، b/468011887)
  • سيتم إيقاف SpatialLayoutSpacer نهائيًا وإطلاق SpatialSpacer. (I2ebf3، b/466071383)
  • تم تعديل واجهة برمجة التطبيقات UserSubspace لاستبدال مصطلح "القفل البطيء" بـ "القفل المؤقت". (I9ded1، b/464035984)

الإصدار 1.0.0-alpha09

‫3 ديسمبر 2025

تم طرح androidx.xr.compose:compose:1.0.0-alpha09 وandroidx.xr.compose:compose-testing:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • إضافة معدِّلات LookAtUser وBillboard التي تتيح للمحتوى مواجهة المستخدم دائمًا (I49b99)
  • تضيف هذه السمة إمكانية ضبط InteractionPolicy على SpatialExternalSurfaces وSpatialPanels، ما يسمح برصد النقرات وأحداث الإدخال الثلاثية الأبعاد الأخرى. (Iae155)
  • تمت إضافة الحجم وتحميل زائد للمعدِّل requiredSize مع العرض والارتفاع والعمق كقيم Dp. (I92f79)
  • تمتد واجهة ParentLayoutParamsModifier الآن إلى DelegatableSubspaceNode. (I1a6d4)
  • تم إيقاف ApplicationSubspace نهائيًا لصالح واجهة برمجة التطبيقات Subspace API.
    • تم تغيير سلوك واجهة Subspace API لتوفير مساحة فرعية على مستوى التطبيق فقط بالوضعية والمقياس المقترحَين.
    • تم تقديم واجهة برمجة التطبيقات PlanarEmbeddedSubspace لتوفير مساحات فرعية مضمّنة في سياقات ثنائية الأبعاد. (Id3343)
  • تمت إضافة العلامة shouldAutoInvalidate إلى واجهة برمجة التطبيقات SubspaceModifier.Node. (I93902)
  • تمت إضافة required(Size|Width|Depth|Height)في واجهات برمجة التطبيقات التي تسمح للمطوّرين بتقييد حجم @SubspaceComposable بنطاق معيّن، مع تجاهل قيود القياس الواردة من العنصر الرئيسي. (Ifaa78)
  • تمت إضافة SubspaceModifier.onSizeChanged الذي يوفّر دالة رد اتصال بسيطة ومحدّدة للمطوّرين للتفاعل عند تغيُّر حجم @SubspaceComposable. (I994f9)
  • تمت إزالة واجهة برمجة التطبيقات Volume API. يجب استخدام واجهة برمجة التطبيقات SceneCoreEntity بدلاً من واجهة برمجة التطبيقات Volume API. (I4162b)
  • تقسيم SubspaceLayoutModifierNode.requestRelayout إلى invalidateMeasurement/invalidatePlacement (I14805)
  • تمت إضافة واجهة برمجة التطبيقات SpatialGltfModel التي تتيح للمطوّرين عرض ملفات glTF في Compose. (Icc91f)
  • تم تقديم واجهة برمجة التطبيقات SpatialGltfModel القابلة للإنشاء لعرض ملفات glTF بسهولة (Iade67)

إصلاح الأخطاء

  • تم إصلاح خطأ في التنسيق في SceneCoreEntity. من المفترض أن يلتزم الآن بالقيود المفروضة عليه. (I11bb8)
  • Lower jxr-compose modules to Compile sdk = 34 (I2d5db)

الإصدار ‎1.0.0-alpha08

‫22 أكتوبر 2025

تم طرح androidx.xr.compose:compose:1.0.0-alpha08 وandroidx.xr.compose:compose-testing:1.0.0-alpha08. يتضمّن الإصدار ‎1.0.0-alpha08 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تم تغيير ResizePolicy لقبول onResizeStart وonResizeUpdate وonResizeEnd. (I7e21f)

إصلاح الأخطاء

  • تم منع حدوث عطل عند إغلاق نشاط يتضمّن مساحة فرعية. (I595a1)

الإصدار ‎1.0.0-alpha07

‫24 سبتمبر 2025

تم طرح androidx.xr.compose:compose:1.0.0-alpha07 وandroidx.xr.compose:compose-testing:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تم تحسين KDocs لـ SpatialMainPanel. (I27b70، b/444467891)
  • تم تقديم السمة SpatialArrangement لترتيب العناصر الفرعية على طول المحور الرئيسي في التنسيقات الثلاثية الأبعاد، مثل SpatialRow وSpatialColumn. توفّر واجهة برمجة التطبيقات الجديدة هذه خيارات ترتيب مألوفة من 2D Compose، بما في ذلك Start وEnd وCenter وSpaceBetween وSpaceAround وSpaceEvenly، مع دعم كامل لاتجاهات التنسيق من اليسار إلى اليمين ومن اليمين إلى اليسار. (I7db38، b/436289959)
  • تمت إضافة واجهة أساسية لـ SubspaceModifier.Node لتحسين منع أخطاء الكتابة وسهولة استخدام واجهات الإضافات، مثل
    • CompositionLocalConsumerSubspaceModifierNode
    • LayoutCoordinatesAwareModifierNode
    • SubspaceLayoutModifierNode
    • ‫CoreEntityNode (داخلي) (Iede00، b/440599394، b/440599394)
  • SpatialExternalSurface (I33315، b/439646773)
  • تمت إضافة SubspaceModifier إلى الدوال المركّبة في Subspace واستبدال مَعلمة القيود بـ SubspaceModifier مع SubspaceModifiers ذات الصلة بالحجم. إذا كانت قيمة allowUnboundedSubspace صحيحة، يمكن أن تظلّ المساحات الفرعية تتضمّن قيودًا غير محدودة. (Ib06e6، b/433331675)
  • إيقاف SubspaceModifiers القابلة للنقل وتغيير الحجم نهائيًا بعد أن أصبحت DragPolicy() وResizePolicy() جزءًا من واجهة برمجة التطبيقات SpatialPanel وSpatialExternalSurface (I397bf، b/437924639)
  • تمت إضافة ميزة "LayoutDirection" في التنسيقات المكانية. ستضع الدالة المركّبة التي تستخدم SpatialAlignment العناصر بشكل صحيح في سياقات اللغات التي تُكتب من اليسار إلى اليمين ومن اليمين إلى اليسار. (I964bb، b/436300273)
  • إضافة مَعلمتَي Resizable وMovable إلى واجهات برمجة التطبيقات Panel لضمان تطبيق هذه السلوكيات على الحاويات المتوافقة فقط (Id491c)
  • تمت إضافة sizeIn وwidthIn وheightIn وdepthIn SubspaceModifiers التي تتيح لك ضبط الحد الأدنى والأقصى الدقيق للعرض والارتفاع والعمق. (I1af09، b/433330761)

الإصدار ‎1.0.0-alpha06

‫13 أغسطس 2025

تم طرح androidx.xr.compose:compose:1.0.0-alpha06 وandroidx.xr.compose:compose-testing:1.0.0-alpha06. يتضمّن الإصدار 1.0.0-alpha06 هذه التعديلات.

إصلاح الأخطاء

  • إعادة إنشاء ComposeXrOwnerLocals عند تدمير مالك مراحل النشاط (9123ce1)

الإصدار ‎1.0.0-alpha05

‫30 يوليو 2025

تم طرح androidx.xr.compose:compose:1.0.0-alpha05 وandroidx.xr.compose:compose-testing:1.0.0-alpha05. يتضمّن الإصدار 1.0.0-alpha05 هذه التعديلات.

الميزات الجديدة

  • تم تغيير فئة التعليقات التوضيحية "SubspaceComposable" لتصبح متاحة للجميع. (Ic2a34، b/399432430)
  • دالتان مركّبتان جديدتان في SpatialExternalSurface تمثّلان كرتَين بزاوية 180 و360 درجة (I40ef2، b/391705799)
  • تمت إضافة SubspaceModifier.aspectRatio (Ide5ab، b/399729509، b/414762147)
  • تمت إضافة واجهة برمجة التطبيقات SceneCoreEntity لتحسين إمكانية التشغيل التفاعلي بين SceneCore وCompose for XR. (I50bb3، b/423020989)
  • تم توفير واجهة برمجة التطبيقات GravityAlignedsubspace لإتاحة ميزة "GravityAligned" غير المُعدَّلة (I07359)

التغييرات في واجهة برمجة التطبيقات

  • سيتبع "SpatialDialog()" إعدادات الضغط على "SpatialDialogProperties.dismissOnBack". (Ib453b، b/416797132)
  • يجب تعديل السمة "minimumPanelDimension" إلى حجم تلقائي جديد يبلغ Dimensions(0.1f, 0.1f, 0.1f) لأنّها تمثّل الأبعاد بالأمتار. (Ib852a)
  • ستحتفظ الآن المساحات الفرعية وOrbiters بحالتها الداخلية في المساحة الرئيسية وعندما يكون التطبيق في الخلفية. في وضع "مساحات منزلية"، سيواصل Subspace إعداد المشهد استعدادًا للتبديل إلى وضع "مساحات كاملة". (I40317، b/416037751)
  • سيتم الآن الاحتفاظ بحالة "SpatialDialogs" عندما يكون التطبيق في الخلفية. (I6aa56)
  • سيتم الآن تطبيق الحجم والموضع المقترحَين من النظام على "ApplicationSubspace". (I4565f، b/418834194)
  • تمت إضافة رسالة خطأ أفضل وتشغيل الخطأ في وقت سابق عند استخدام SubspaceComposable في سياق غير SubspaceComposable. (Iee2ae، b/416484684)
  • يتم تعديل ExperimentalSubspaceVolumeApi من "تحذير" إلى "خطأ" لأنّه غالبًا ما يتم تجاهل التحذيرات عند إساءة استخدام واجهات برمجة التطبيقات القابلة للإنشاء. (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)
  • تمت إعادة تسمية XR Placeable إلى SubspacePlaceable لتمييزه عن Placeable في Compose. (I74874)
  • تتم إزالة إعدادات Orbiter وإضافة shouldRenderInNonSpatial كمَعلمة جديدة. بالإضافة إلى ذلك، ستتم إزالة الفئة EdgeOffset وإضافة orbiterOffsetType كمَعلمة جديدة لدمج دوال Orbiter(). بالإضافة إلى إعادة تسمية "OrbiterEdge" إلى "ContentEdge". (Iebf3d)
  • تمت إعادة تسمية Measurable إلى SubspaceMeasurable لتمييز النوع عن نوع Measurable في Compose. (I9726c)
  • تمّت إعادة تسمية MeasureResult إلى SubspaceMeasureResult (I9f34d)
  • تمت إزالة واجهة برمجة التطبيقات setSubspaceContent واستخدام واجهة برمجة التطبيقات setContent في Compose مع الدالة المركّبة Subspace. (Ifff4c، b/421427391، b/421427391)
  • تمت إعادة تسمية "MeasurePolicy" إلى "SubspaceMeasurePolicy". (I37a9b، b/422553904)
  • يجب تحويل SubspaceSemanticsInfo إلى واجهة مغلقة لأنّه لن يكون بإمكاننا إضافة أعضاء بدون الإعدادات التلقائية. (I372f9، b/423704068)
  • تم تعديل مستندات SpatialExternalSurface، وتمت إعادة تسمية ContentSecurityLevel إلى SurfaceProtection (I3c460، b/420982808)
  • تم توفير دالة إنشائية مثقلة لمعدِّل قابل للنقل يسمح بالتثبيت. (Ic0c70)
  • تمت إضافة المزيد من موفّري المواضع لـ "تلميحات الشاشة"، ما يتيح للمطوّرين الآن التحكّم في ما إذا كان سيتم وضع تلميح الشاشة أعلى نقطة الارتساء أو أسفلها أو على يسارها أو يمينها. إضافة واجهة برمجة تطبيقات تستخدم Shape لمؤشرات الإدراج، ما يتيح توفير المزيد من الأشكال المخصّصة (Ie513c، b/374766087، b/418854637)
  • تمت إزالة "CoreEntity" من دور "PublishedApi" (Ifee05)

إصلاح الأخطاء

  • تم إصلاح المشكلة المتمثّلة في وميض "SpatialDialog" عند عرضه. (Ife73c، b/401619909)
  • تم إصلاح المشكلة المتمثّلة في عدم تمكُّن "SpatialDialog" من تعتيم "لوحة النشاط". (I8ca6c، b/367442109)
  • تم إصلاح مشكلة عدم عرض بعض المحتوى في مربّع حوار XR ‏ (I17cd5، b/418062437)
  • تم إصلاح مشكلة إغلاق "SpatialPopup" عند النقر داخل المحتوى. (If262c، b/417245722)
  • تم إصلاح المشكلة المتمثّلة في تعذُّر تغيير حجم SpatialPanel بشكل صحيح إلى الحجم الجديد عند ربط resizable().movable(). (I02ee3، b/422264230)
  • تم إصلاح مشكلة تداخل topBar مع القائمة في SpatialComposeVideoPlayer (Id33bc، b/427168167)
  • تم إصلاح مشكلة عدم عرض نصف قطر الزاوية (I975fe، b/428261830)

الإصدار ‎1.0.0-alpha04

‫7 مايو 2025

تم طرح androidx.xr.compose:compose:1.0.0-alpha04 وandroidx.xr.compose:compose-testing:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 هذه التعديلات.

الميزات الجديدة

  • تمّت إضافة واجهة CompositionLocalConsumerSubspaceModifierNode للسماح لأنواع SubspaceModifier المخصّصة بالوصول إلى القيم المحلية للإنشاء.
  • تمت إضافة واجهة برمجة تطبيقات SpatialPanel جديدة تتّبع أسلوب تنفيذ AndroidView في Compose، وتم إيقاف واجهة برمجة التطبيقات ViewBased SpatialPanel السابقة.
  • تمت إضافة عنصر مصاحب VolumeConstraints.Unbounded يمثّل قيودًا غير محدودة.
  • تمت إضافة SubspaceModifier.onPointSourceParams للسماح بمصدر صوت مكاني.
  • تمت إضافة ApplicationSubspace علني يوفّر VolumeConstraints اختياريًا لتحديد منطقة ثلاثية الأبعاد يمكن للتطبيق عرض المحتوى المكاني فيها. في حال عدم تحديد أي قيود، سيتم تلقائيًا تقييد المساحة الفرعية بعرض وارتفاع مجال الرؤية الحالي في SpatialUser. يمكن للمستخدمين تقديم قيود لاستخدامها في حال تعذّر تحديد مجال الرؤية. وإلا، يتم استخدام القيم التلقائية لعرض مجال الرؤية وارتفاعه.
  • تمت إضافة SpatialExternalSurface، والتي يمكن استخدامها لعرض المحتوى المجسّم. يمكن تخصيص SpatialExternalSurface باستخدام المعدِّلات (باستثناء ألفا) وتأثير تمويه الحواف.
  • تمت إضافة معدِّل مساحة فرعية جديد pointerHoverIcon يسمح للمستخدمين بضبط رمز المؤشر المكاني.

التغييرات في واجهة برمجة التطبيقات

  • تمت إزالة قيود RequiresApi(34) على جميع حزم Jetpack XR. كان هذا القيد متكررًا لأنّ Jetpack XR لا يتوفّر حاليًا إلا على الأجهزة التي تعمل بالمستوى 34 من واجهة برمجة التطبيقات أو الإصدارات الأحدث. (Iae0f8)
  • تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 من KGP أو إصدار أحدث. (Idb6b5)
  • ستعمل ميزة "الرجوع" الآن على اللوحات المكانية بدون أنشطة مضمّنة. لكي تعمل ميزة "التعامل مع زر الرجوع"، عليك تحديد android:enableOnBackInvokedCallback="true" في ملف بيان Android.
  • ستعمل ميزة Backhandling الآن على مربّعات الحوار المكانية. لكي تعمل ميزة "التعامل مع زر الرجوع"، عليك تحديد android:enableOnBackInvokedCallback="true" في ملف بيان Android.
  • يمكن الآن تغيير حجم SpatialPanel المستندة إلى Compose والمستندة إلى العرض استنادًا إلى محتواها.
  • يمكن للمطوّرين الآن ضبط قيم SpatialElevationLevel المخصّصة، ولا يقتصر ذلك على المستويات المحدّدة مسبقًا.
  • يمكن الآن تخصيص مستوى ارتفاع Orbiter من خلال المَعلمة elevation.
  • يمكن الآن تحديد المساحة الفرعية تلقائيًا حسب عرض وارتفاع مجال الرؤية في SpatialUser. إذا تعذّر تحديد مجال الرؤية، يتم استخدام القيم التلقائية لعرض مجال الرؤية وارتفاعه.
  • تمت إضافة عمليات الاستدعاء الجديدة onMoveStart وonMoveEnd إلى المُعدِّل Movable. يتم استدعاء دالتَي الاستدعاء onMoveStart وonMoveEnd عندما يبدأ المستخدم في نقل دالة مركّبة في مساحة فرعية باستخدام المُعدِّل القابل للنقل وينهي ذلك.
  • تمّت إزالة المَعلمة name من واجهات برمجة التطبيقات المكانية، مثل SpatialRow وSpatialPanel. لتصحيح أخطاء شجرات الإنشاء المكانية، استخدِم SubspaceModifier.testTag بدلاً من ذلك.
  • تمت إزالة تحميل زائد غير متوافق لـ SpatialPopup يحتوي فقط على spatialElevationLevel وcontent. يُرجى استخدام الواجهة التي تتيح استخدام onDimissRequest.
  • تمّت إزالة دالة الاستدعاء onPoseChange من المبدّل Movable. يمكنك استخدام onMove كبديل.
  • لن يتم تطبيق تأثيرات "SubspaceModifiers" بعد الآن إذا تم فصلها أو إذا كانت قيد الفصل حاليًا.
  • تم تقسيم واجهة برمجة التطبيقات SpatialRow الحالية إلى SpatialRow وSpatialCurvedRow. إذا كنت تستخدم في السابق المَعلمة curveRadius في SpatialRow، استخدِم الآن SpatialCurvedRow بدلاً منها، فهي تقدّم السلوك نفسه.
  • لم يعُد MainPanel وActivityPanel يتضمّنان أشرطة عناوين عند تشغيلهما على نسخة نظام حديثة مماثلة.
  • أصبح من الممكن الآن تجميع معدِّلات الشفافية والحجم، وسيتم ضرب قيمها للحصول على قيمة الشفافية أو الحجم النهائية المطبَّقة.
  • تم تحسين دالة الاستدعاء onPoseChange من المُعدِّل Movable لتنفيذ حركة وضعية أكثر سلاسة.
  • ستنفّذ الآن المعدِّلات القابلة للنقل وتغيير الحجم عمليات الاستدعاء على سلسلة التعليمات الرئيسية لضمان أنّ تغييرات الحالة ستؤدي إلى إعادة الإنشاء.
  • تمت إضافة ميزة رصد الحالة إلى مرحلتَي التنسيق والقياس لضمان أنّ تغييرات الحالة في SubspaceLayout ستؤدي إلى إعادة التنسيق.
  • تم تحسين تعديلات سلسلة المُعدِّلات لإعادة استخدام المُعدِّلات الحالية بشكل أفضل.

إصلاح الأخطاء

  • تم إيقاف التعتيم عند عرض SpatialDialog. (Ic4594)
  • سيتم الآن تجاهل طلبات إعادة التنسيق التي يتم إجراؤها أثناء فصل عُقد المُعدِّل.
  • تمّت إزالة مراحل إعادة التنسيق التي يتم تفعيلها من خلال المبدّلَين Movable وResizable.
  • تم إصلاح عطل في الدالة المركّبة MainPanel() كان يحدث عند ضبط أي من البُعدَين على صفر، إما مباشرةً أو أثناء عملية حسابية للتنسيق، مثل عملية حسابية لـ SpatialRow/SpatialColumn. سيتم الآن إخفاء اللوحة بدلاً من ذلك. يُرجى العِلم أنّ هذا الإصلاح يعالج تحديدًا الأعطال التي تحدث أثناء مرحلة التنسيق، وسيتم التعامل بشكل منفصل مع تغيير حجم اللوحة إلى الصفر من خلال تفاعل المستخدم. تفتقر اللوحة المخفية إلى إمكانيات واجهة المستخدم.
  • تم إصلاح المشكلة المتعلّقة بـ maintainAspectRatio من المُعدِّل القابل لتغيير الحجم. يُفترض أن يتم الحفاظ على نسبة العرض إلى الارتفاع الآن.
  • تم إصلاح مشكلة في المساحات الفرعية المتداخلة حيث يتم وضعها بشكل غير صحيح في إطار واحد.
  • تم إصلاح مشكلة عدم تطبيق الزوايا المستديرة في بعض الأحيان عندما كان من المفترض تطبيقها.
  • لن يظهر "NestedSubspaces" بعد الآن في إطار واحد في الموقع الجغرافي غير الصحيح.

الإصدار ‎1.0.0-alpha03

‫26 فبراير 2025

تم إصدار androidx.xr.compose:compose:1.0.0-alpha03 وandroidx.xr.compose:compose-testing:1.0.0-alpha03 بدون أي تغييرات ملحوظة منذ آخر إصدار أوّلي. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.

الإصدار ‎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، وستربط Orbiters بأقرب دالة مركّبة رئيسية مستندة إلى 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 ثنائية الأبعاد في تنسيق مكاني. ويقدّم هذا الإصدار الدالة المركّبة للمساحة الفرعية Volume، والتي تتيح لك وضع كيانات SceneCore، مثل النماذج الثلاثية الأبعاد، بالنسبة إلى واجهة المستخدم. مزيد من المعلومات في دليل المطوِّر:

    • Subspace: يمكن وضع هذه الدالة المركّبة في أي مكان ضمن التسلسل الهرمي لواجهة المستخدم في تطبيقك، ما يتيح لك الحفاظ على تنسيقات واجهة المستخدم الثنائية الأبعاد والمكانية بدون فقدان السياق بين الملفات. يسهّل ذلك مشاركة عناصر مثل بنية التطبيق الحالية بين الواقع الممتد وأشكال الأجهزة الأخرى بدون الحاجة إلى رفع الحالة من خلال شجرة واجهة المستخدم بأكملها أو إعادة تصميم تطبيقك.

    • SpatialPanel: هي دالة مركّبة في المساحة الفرعية تتيح لك عرض محتوى التطبيق، مثل تشغيل الفيديو أو الصور الثابتة أو أي محتوى آخر في لوحة مكانية.

    • Orbiter: هو مكوّن واجهة مستخدم مكاني. وهي مصمَّمة ليتم إرفاقها بلوحة مكانية مقابلة، وتحتوي على عناصر تنقّل وإجراءات مستنِدة إلى السياق ذات صلة بتلك اللوحة المكانية. على سبيل المثال، إذا أنشأت لوحة مكانية لعرض محتوى فيديو، يمكنك إضافة عناصر التحكّم في تشغيل الفيديو داخل لوحة عائمة.

    • Volume: يمكنك وضع عناصر SceneCore، مثل النماذج الثلاثية الأبعاد، بالنسبة إلى واجهة المستخدم.

  • التنسيق المكاني: يمكنك إنشاء لوحات مكانية متعددة ووضعها ضمن تنسيق مكاني باستخدام SpatialRow وSpatialColumn وSpatialBox وSpatialLayoutSpacer. استخدِم SubspaceModifier لتخصيص التنسيق.

  • مكوّنات واجهة المستخدم المكانية: يمكن إعادة استخدام هذه العناصر في واجهة المستخدم الثنائية الأبعاد، ولن تظهر سماتها المكانية إلا عند تفعيل الإمكانات المكانية.

    • SpatialDialog: سيتم دفع اللوحة قليلاً إلى الخلف في عمق المحور Z لعرض مربّع حوار مرتفع.
    • ‫SpatialPopUp: ستتراجع اللوحة قليلاً في عمق المحور Z لعرض نافذة منبثقة مرتفعة
    • SpatialElevation: يمكن ضبط SpatialElevationLevel لإضافة ارتفاع.
  • ‫SpatialCapabilities: يمكن أن تتغيّر الإمكانات المكانية عندما يتفاعل المستخدمون مع تطبيقك أو النظام، أو يمكن أن يغيّرها تطبيقك نفسه، على سبيل المثال، عند الانتقال إلى Home Space أو Full Space. لتجنُّب المشاكل، يحتاج تطبيقك إلى التحقّق من LocalSpatialCapabilities.current لتحديد واجهات برمجة التطبيقات المتوافقة مع البيئة الحالية. isSpatialUiEnabled: عناصر واجهة المستخدم المكانية (مثل SpatialPanel) isContent3dEnabled: العناصر الثلاثية الأبعاد isAppEnvironmentEnabled: البيئة isPassthroughControlEnabled: ما إذا كان بإمكان التطبيق التحكّم في حالة العرض المباشر أم لا isSpatialAudioEnabled: الصوت المكاني

المشاكل المعروفة

  • في الوقت الحالي، يجب استخدام الإصدار 30 من minSDK لاستخدام Jetpack Compose for XR. كحل بديل، يمكنك إضافة إدخال البيان التالي <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> لتتمكّن من إنشاء التطبيق وتشغيله باستخدام الإصدار 23 من minSDK.
  • تتطلّب تطبيقات Jetpack XR حاليًا طلب إذن android.permission.SCENE_UNDERSTANDING في ملف AndroidManifest.
  • عندما يتم تشغيل تطبيق مباشرةً في "مساحة كاملة" باستخدام السمة PROPERTY_XR_ACTIVITY_START_MODE في ملف البيان، يتم فتح الأنشطة/التطبيقات في البداية في "مساحة الشاشة الرئيسية" قبل الانتقال إلى "مساحة كاملة".
  • قد تومض ملفات glTF في Volume Composables في البداية في الموقع الجغرافي غير الصحيح.
  • سيؤدي استخدام SpatialDialog في لوحة تم نقلها بشكل كبير إلى دفع المحتوى في الاتجاه الخاطئ.