‫Jetpack Compose لتجربة الواقع المُمتد

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

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

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

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

Groovy

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

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

Kotlin

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

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

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

الملاحظات

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

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

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

الإصدار 1.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 على أنّهما تجريبيتان. تم تحويل بعض السمات إلى دوال جلب. (I8d689، b/524771027)
  • تم إصلاح السلوك العام للكثافة من خلال تحديد التحويل بين المتر والبكسل ليكون ثابتًا. تم إيقاف Meter.kt نهائيًا، ويمكن الآن استخدام Session.scene.virtualPixelDensity كبديل. (I122ff، b/430097855، b/474168798)
  • تعديل المعدِّل القابل لتغيير الحجم لاستخدام ResizePolicy بدلاً من معدِّلَين (I7fb0f وb/496257436 وb/519672992)
  • تمت إضافة مَعلمة سماحية: Dp = Dp(0.5f) إلى جميع تأكيدات تساوي الموضع والبعد العامين ذوي الفاصلة العائمة في SubspaceAssertions.kt. تم توثيق السلوك التلقائي للتفاوت (0.5.dp) بالكامل. (I266cb، b/521491915)
  • تمت إضافة حمل زائد قابل للنقل مع المَعلمة 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. هذا هو إعداد لسمات دلالية لعقدة Spatial. يوفّر هذا الصف طرق طلب آمنة للدلالات الثلاثية الأبعاد بدون تسريب إمكانات الدلالات الثنائية الأبعاد الأساسية إلى المستهلكين الخارجيين. (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)
  • تعديل مستندات SpatialPanel وSpatialExternalSurface kdocs لتضمين موضع عرض العنصر ضمن حجم تصميمه (I72104)
  • تم تضمين منطق التحميل SpatialGltfModel في SpatialGltfModelState وتوضيح سلوك الخطأ. (Ibe98b)
  • توضيح depth في مستندات 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 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" على الأقل عند استخدام Compose. (Id45cd)
  • تم تعديل Size مستندات kdocs (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 نهائيًا وطرح الإصدار 2 منه (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)
  • تمت إضافة سلوك من اليمين إلى اليسار لمعدّلات المساحة الفرعية للإزاحة. تمت أيضًا إضافة 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 والإصدارات اللاحقة. يجب تحديث التطبيقات المتأثرة إلى أحدث إصداراتها.

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

  • تغييرات في مساحة العرض المتروكة في أداة تعديل المساحة الفرعية لتتوافق مع اتجاه التخطيط (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)
  • خفض مستوى وحدات jxr-compose إلى 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. توفّر واجهة برمجة التطبيقات الجديدة هذه خيارات ترتيب مألوفة من 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)
  • أضِف المَعلمتَين "قابلة لتغيير الحجم" و"قابلة للنقل" إلى واجهات برمجة التطبيقات 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 Composables يمثّلان كرتين بزاوية 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)
  • تمت إعادة تسمية Placeable الخاص بـ XR إلى SubspacePlaceable للتمييز بينه وبين Placeable الخاص بـ Compose. (I74874)
  • إزالة إعدادات Orbiter وإضافة shouldRenderInNonSpatial كمعلَمة جديدة بالإضافة إلى ذلك، تمت إزالة الفئة EdgeOffset وإضافة orbiterOffsetType كمعلَمة جديدة لدمج الدوال Orbiter(). بالإضافة إلى إعادة تسمية OrbiterEdge إلى ContentEdge. (Iebf3d)
  • تمت إعادة تسمية Measurable إلى SubspaceMeasurable للتمييز بين النوعين في MeasurableCompose. (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)
  • أضِفنا المزيد من موفّري المواضع لتلميحات الأدوات، ما يتيح للمطوّرين الآن التحكّم في ما إذا كان سيتم وضع تلميح الأداة أعلى أو أسفل أو يسار أو يمين العنصر الأساسي. أضِف واجهة برمجة تطبيقات تقبل شكلاً للعلامات، حتى يمكن توفير المزيد من الأشكال المخصّصة. (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، وتم إيقاف ViewBased SpatialPanel السابقة نهائيًا.
  • تمت إضافة عنصر مصاحب VolumeConstraints.Unbounded يمثّل القيود غير المحدودة.
  • تمت إضافة SubspaceModifier.onPointSourceParams للسماح بمصدر صوتي مكاني.
  • تمت إضافة ApplicationSubspace عام، ما يوفّر VolumeConstraints اختياريًا لتحديد مساحة ثلاثية الأبعاد يمكن للتطبيق عرض المحتوى المكاني فيها. بشكلٍ تلقائي، إذا لم يتم تحديد أي قيود، سيتم تحديد حدود Subspace من خلال مجال الرؤية الحالي SpatialUser من حيث العرض والارتفاع. يمكن للمستخدمين تقديم قيود لاستخدامها في حال تعذّر تحديد مجال الرؤية. بخلاف ذلك، يتم استخدام القيم التلقائية لعرض وارتفاع مجال الرؤية.
  • تمت إضافة SpatialExternalSurface، ويمكن استخدامها لعرض محتوى مجسّم. يمكن تخصيص SpatialExternalSurface باستخدام عناصر تعديل (باستثناء قناة ألفا)، وتأثير تمويه الحواف.
  • تمت إضافة pointerHoverIcon أداة تعديل المساحة الفرعية الجديدة التي تتيح للمستخدمين ضبط رمز المؤشر المكاني.

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

  • تمت إزالة القيود المفروضة على RequiresApi(34) في جميع حِزم Jetpack XR. كان هذا القيد غير ضروري لأنّ Jetpack XR لا يتوفّر حاليًا إلا على الأجهزة التي تعمل بالمستوى 34 من واجهة برمجة التطبيقات أو الإصدارات الأحدث. (Iae0f8)
  • تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من المكوّن الإضافي لنظام Gradle المتوافق مع Kotlin. (Idb6b5)
  • سيعمل الآن التعامل مع الرجوع على اللوحات المكانية بدون أنشطة مضمّنة. لكي يعمل معالج الرجوع، عليك تحديد android:enableOnBackInvokedCallback="true" في ملف بيان Android.
  • ستعمل ميزة "التعامل مع الرجوع" الآن على مربّعات الحوار المكانية. لكي يعمل معالج الرجوع، عليك تحديد android:enableOnBackInvokedCallback="true" في ملف البيان الخاص بنظام Android.
  • يمكن الآن تحديد حجم SpatialPanel المستندة إلى Compose وView استنادًا إلى محتواها.
  • يمكن للمطوّرين الآن ضبط قيم SpatialElevationLevel المخصّصة الخاصة بهم، ولا يقتصر الأمر على المستويات المحدّدة مسبقًا.
  • يمكن الآن تخصيص مستوى ارتفاع القمر الصناعي من خلال المَعلمة 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 for XR المخصّص للمطوّرين استخدِم مفاهيم Compose المألوفة، مثل الصفوف والأعمدة، لإنشاء تصاميم واجهة مستخدم مكانية في الواقع الممتد، سواء كنت تنقل تطبيقًا ثنائي الأبعاد حاليًا إلى الواقع الممتد أو تنشئ تطبيقًا جديدًا للواقع الممتد من البداية. توفر هذه المكتبة عناصر قابلة للإنشاء في المساحات الفرعية والمساحات، مثل اللوحات المكانية والأجرام السماوية التي تتيح لك وضع واجهة المستخدم الحالية المستندة إلى Compose أو Views في تصميم مكاني. تقدّم هذه السمة الدالة المركّبة Volume subspace، التي تتيح لك وضع كيانات SceneCore، مثل التصاميم الثلاثية الأبعاد، بالنسبة إلى واجهة المستخدم. يمكنك الاطّلاع على مزيد من المعلومات في دليل المطوِّر التالي:

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

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

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

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

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

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

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

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

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