Jetpack Compose ویژه واقعیت گسترده

چیدمان‌های میانای کاربر فضایی را به‌صورت اعلانی بسازید که از قابلیت‌های فضایی Android XR بهره می‌برند.
جدیدترین به‌روزرسانی نسخه پایدار نامزد انتشار انتشار نسخه بتا نسخه آلفا
‫۲۱ اکتبر ۲۰۲۶ - - 1.0.0-beta02 -

اعلام وابستگی‌ها

برای افزودن وابستگی به ترکیب‌بندی XR، باید مخزن Google Maven را به پروژه‌تان اضافه کنید. برای اطلاعات بیشتر، مخزن Maven در Google را بخوانید.

وابستگی‌های مصنوعات موردنیازتان را در فایل build.gradle برای برنامه یا واحدتان اضافه کنید:

شیار

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"
}

کاتلین

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-beta02

‫۲۱ اکتبر ۲۰۲۶

‫androidx.xr.compose:compose:1.0.0-beta02 و androidx.xr.compose:compose-testing:1.0.0-beta02 منتشر شده‌اند. نسخه 1.0.0-beta02 حاوی این ارسال‌ها است.

تغییرات میانای برنامه‌سازی کاربردی

  • کتابخانه‌ها اکنون Kotlin 2.2 را هدف قرار می‌دهند و به kotlinc 2.2 نیاز دارند (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)
  • انتقال بین محتوای سه‌بعدی و دوبعدی Composable را در یک «فعالیت» در FullSpaceMode فعال کنید. این تغییر توسط SpatialComposeFlags.isMainPanelResetOnSubspaceDisposeEnabled محدود شده است. (I4e237)
  • Exposed experimental Subspace overload taking a FollowTarget parameter to support following content. (Iec1a9)
  • اصلاح‌کننده‌های قابل‌جابه‌جایی منسوخ‌شده را بردارید. به‌جای آن از اصلاح‌کننده قابل‌جابه‌جایی جدیدی استفاده کنید که MovePolicy جدید را به‌عنوان پارامتر می‌پذیرد. (Ib135d)
  • برداشتن DragPolicy منسوخ‌شده. درعوض از SubspaceModifier.movable() استفاده کنید. (I108d4)
  • Slider و RangeSlider بدون حالت منسوخ‌شده به‌نفع نسخه‌های با حالت آن‌ها سربارگذاری شدند. نام activeRangeStart و activeRangeEnd در RangeSliderState به startValue و endValue تغییر کرد، و میاناهای برنامه‌سازی کاربردی «لغزنده» قدیمی‌تر ترویج‌نشده و آزمایشی با DeprecationLevel.HIDDEN منسوخ شدند. (If8995)

رفع اشکال‌ها

  • RotateToLookAtUser با معرفی poseInActivitySpace برطرف شد تا از محاسبه صحیح حالت برای همه انواع زیرفضا، ازجمله زیرفضاهای متصل به لنگرها یا کاربران، اطمینان حاصل شود.Ica367b
  • رفع خرابی «محدودیت‌ها» وقتی Orbiter به پانل‌های بزرگ متصل است (I8c4bf)
  • اشکالی در SubspaceLayoutNode برطرف شد که در آن removeAll() باعث تخصیص غیرضروری ArrayList می‌شد. همچنین عملکرد محاسبه عمق را اصلاح کردیم. I34a10a
  • وابستگی androidx.lifecycle:lifecycle-runtime به نسخه ۲.۱۰.۰ به‌روز شد. این نسخه برای اجرای بررسی‌های lint زمان اجرای چرخه حیات بسته‌بندی‌شده با AGP نسخه 9.5.0-alpha04 یا جدیدتر لازم است. (I99bfd, b/556807521)
  • بهبود kdocs مربوط به AudioOutputProvider برای برجسته کردن این نکته که نباید با چند نمونه ExoPlayer دوباره استفاده شود (I6b18e)
  • Fix minor kdoc spelling and grammar issues (Id3ba6)

مشکلات شناخته‌شده

  • این نسخه از androidx.xr.compose به androidx.xr.scenecore:1.0.0-rc01 وابسته است که نشت حافظه شناخته‌شده‌ای دارد. در پیکربندی ساخت، می‌توانید به‌طور صریح وابستگی SceneCore را به نسخه 1.0.0 لغو کنید، که شامل اصلاحی برای نشت حافظه است.

نسخه 1.0.0-beta01

‫۲۳ سپتامبر ۲۰۲۶

‫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 برطرف شد. اگر رویداد ورودی درست زمانی رخ می‌داد که Composable یا فرزند (برای مثال Orbiter) توالی حذف را آغاز می‌کرد، خرابی رخ می‌داد. همچنین مشکلی را که در آن فرزند رویدادهای نگه داشتن نشانگر را دریافت می‌کرد برطرف می‌کند. (Ifc477)
  • اندازه پانل در RotateToLookAtUserActivity کاهش یافته است تا از برش در دستگاه‌های با میدان دید کوچک‌تر جلوگیری شود. (I8d672)

مشکلات شناخته‌شده

  • مشکلی در پانل‌های Compose XR وجود دارد که در آن ایجاد پانل‌های متعدد در یک «فعالیت» ممکن است باعث خرابی در آنچه مشاهده می‌شود شود، حتی پس‌از اینکه پانل‌ها ازبین رفته باشند.

نسخه 1.0.0-alpha17

‫۱۲ اوت ۲۰۲۶

‫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 API اکنون آزمایشی است و برای استفاده باید با آن موافقت شود. (I4557e)
  • Make system resizable nullable (Ib0093)
  • Density در SubspaceSemanticsInfo برای آزمایش درمعرض قرار گرفت. (I2e826)
  • تغییر نام گزینه پیش‌فرض ResizePolicy به system و افزودن گزینه جدید Default بدون پارامتر (Ic8b16)
  • علامت‌گذاری FollowTarget به‌عنوان آزمایشی. اکنون کل میانای برنامه‌سازی کاربردی FollowingSubspace آزمایشی است. (Id4ee3)
  • برداشتن میاناهای برنامه‌سازی کاربردی GltfAnimation (Ic2894)
  • نام روش پارامتری‌شده MovePolicy.default() به MovePolicy.system() تغییر کرد. ویژگی val MovePolicy.Default را برای نشان دادن رفتار حرکتی پیش‌فرض استاندارد معرفی کردیم. (Iedcc9)
  • Expand ExperimentalMoveAnchorPolicy opt in requirements to PlaneSemantic and PlaneOrientation (Ief927)
  • برداشتن resetMins از VolumeConstraints.offset (Ib2f2f)
  • تابع منسوخ‌شده SceneCoreEntitySizeAdapter برداشته شد. (Ib6722)
  • ‫Subspace منسوخ‌شده با allowUnboundedSubspace جایگزین شد. (I8e97f)
  • بار اضافی اصلاح‌کننده معنایی منسوخ‌شده برداشته شد. (I4ac10)

رفع اشکال‌ها

  • مشکل مربوط به فرزندان Composable با InteractionPolicy پیوست‌شده که رویدادهای ورودی را راه‌اندازی می‌کردند برطرف شد (Icdba6)

نسخه 1.0.0-alpha16

‫۱۵ ژوئیه ۲۰۲۶

‫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)
  • Updated AnchorEntity to be called AnchorSpace (Ifa95e, b/513619219)
  • Unrestricted fromResource method from 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، و غیره) اکنون پیش‌از مقداردهی اولیه Session به null یا نسخه‌های غیرواقعیت گسترده آن تبدیل می‌شوند.

وقتی Session دردسترس قرار گرفت، بازترکیب با وضعیت صحیح راه‌اندازی خواهد شد. (I0cfa4، b/514712835، b/514712835)

  • اسناد ComponentActivity.requestHomeSpace و ComponentActivity.requestFullSpace درباره رفتار تعلیق، لغو، و همزمانی شفاف‌سازی شد. آزمایش‌های به‌روزشده برای درستی‌سنجی انتشار CancellationException. (I22f75، b/493289528)

نسخه 1.0.0-alpha15

۱۷ ژوئن ۲۰۲۶

‫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. نام speed به playbackSpeed در SpatialGltfModelAnimation تغییر کرد و روش resume()‎ اضافه شد. ‫SpatialGltfModelStatus.Loaded و Loading اکنون شیء هستند. (I523de)
  • rotateToLookAtUser به‌عنوان میانای برنامه‌سازی کاربردی آزمایشی علامت‌گذاری شد. (I86c16)
  • متغیر محافظت‌شده targetCurrentPose به متغیر محلی currentTargetPoseMeter منتقل شد و نام آن تغییر کرد. (Ia557c)
  • Update SpatialPanel and SpatialExternalSurface kdocs to include where the object is rendered within its layout size (I72104)
  • منطق بار کردن SpatialGltfModel در SpatialGltfModelState کپسوله‌سازی شد و رفتار ناموفق شفاف‌سازی شد. (Ibe98b)
  • Clarified depth in SubspaceModifer.size kdocs (I0f84f)

نسخه 1.0.0-alpha14

۱۹ مه ۲۰۲۶

‫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 به API 37 به‌روز شد. این یعنی هنگام استفاده از Compose، حداقل نسخه AGP‏ ۹.۲.۰ لازم است. (Id45cd)
  • ‫Size سند kdocs به‌روز شد (Iefa9a)

نسخه 1.0.0-alpha13

‫۶ مه ۲۰۲۶

‫androidx.xr.compose:compose:1.0.0-alpha13 و androidx.xr.compose:compose-testing:1.0.0-alpha13 منتشر شده‌اند. نسخه 1.0.0-alpha13 حاوی این ارسال‌ها است.

تغییرات میانای برنامه‌سازی کاربردی

  • Orbiter API درانتظار تغییرات بیشتر است، توصیه می‌کنیم اعلان‌های منسوخ شدن Orbiter را موقتاً غیرفعال کنید و منتظر تغییرات 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 تغییر کرد. Updated SpatialExternalSurface kdocs (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)
  • ‫SpatialEnterTransition و SpatialExitTransition به‌عنوان @Immutable علامت‌گذاری شدند (If1710، b/487757837)
  • میانای برنامه‌سازی کاربردی SpatialGltfModel برای این نسخه محدودشده علامت‌گذاری شده است و آزمایش‌های بیشتری باید روی آن انجام شود. (Ibf003، b/466090694)
  • نام DeviceTrackingMode.LAST_KNOWN به SPATIAL_LAST_KNOWN تغییر کرد (با یک بازگشت منسوخ‌شده)، INERTIAL_LAST_KNOWN برای ردیابی 3DoF اضافه شد، و TRACKING_DEGRADED به TrackingState اضافه شد. (Ie661c، b/445466590)
  • Removing deprecated SpatialLayoutSpacer (I7b36c)
  • Removing deprecated padding API (If1886)
  • floatRange به مقادیر سوگیری اضافه شد. مقدار پیش‌فرض برای LayoutDirection (I9d74e) برداشته شد

رفع اشکال‌ها

  • نمونه‌های کد و اسناد KDoc برای SpatialColumn، SpatialRow، و SpatialCurvedRow اضافه شد. (Iaf54f، b/495777633)

نسخه 1.0.0-alpha12

‫۲۵ مارس ۲۰۲۶

‫androidx.xr.compose:compose:1.0.0-alpha12 و androidx.xr.compose:compose-testing:1.0.0-alpha12 منتشر شده‌اند. نسخه 1.0.0-alpha12 حاوی این ارسال‌ها است.

تغییرات میانای برنامه‌سازی کاربردی

  • برای ارائه glTF و کنترل پویانمایی‌ها، میانای برنامه‌سازی کاربردی SpatialGltfModel و میاناهای برنامه‌سازی کاربردی SpatialGltfModelAnimation را اضافه کنید. ‫SpatialGltfModelState به AutoCloseable تغییر کرد، اکنون باید بسته شود تا منابع آن آزاد شود. (I11fde،‏ b/466065486،‏ b/481379924). بااین‌حال، میانای برنامه‌سازی کاربردی SpatialGltfModel برای این نسخه پخش به‌عنوان محدودشده علامت‌گذاری شده است و آزمایش‌های بیشتری باید روی آن انجام شود. (Ibf003، b/466090694)
  • یک سربارگذاری خالی منسوخ‌شده برای SubspaceModifier.rotate اضافه شد. (Idceb6)
  • نام تابع SpatialSmoothFeatheringEffect به spatialSmoothFeatheringEffect تغییر کرد و به ماژول ترسیم منتقل شد. مقدار محو کردن پیش‌فرض SpatialExternalSurface به null به‌روز شد که عملکرد قدیمی ZeroFeatheringEffect را تقلید می‌کند. (I5fdaa، b/460426800)
  • ‫onPointSourceParamsAvailable حذف شد. در آینده نزدیک، API فضایی‌سازی صدای دیگری دردسترس قرار خواهد گرفت. (I86507، b/458513439)
  • رفتار راست به چپ برای اصلاح‌کننده‌های زیرفضای آفست اضافه شد. همچنین absoluteOffset برای نادیده گرفتن جهت چیدمان اضافه شد. (I30e4b،‏ b/474409165)

نسخه 1.0.0-alpha11

‫۲۵ فوریه ۲۰۲۶

‫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)
  • Combining overloading SubspaceLayout function APIs (Idd30a)
  • نام SubspaceModifier.lookAtUser به rotateToLookAtUser و پارامتر up به upDirection تغییر کرد. (Icafb8)
  • درحال تبدیل SpatialRow به تابع درون‌خطی (Ia2f20)
  • تبدیل SpatialColumn به تابع درون‌خطی (I681be)
  • میانای برنامه‌سازی کاربردی بیلبورد برداشته شد (Ib76cd)

نسخه 1.0.0-alpha10

‫۲۸ ژانویه ۲۰۲۶

‫androidx.xr.compose:compose:1.0.0-alpha10 و androidx.xr.compose:compose-testing:1.0.0-alpha10 منتشر شده‌اند. نسخه 1.0.0-alpha10 حاوی این ارسال‌ها است.

تغییرات میانای برنامه‌سازی کاربردی

  • Removing deprecated API - ApplicationSubspace (Ia6596, b/468345186)
  • Updated SpatialShape to a sealed interface (I7e3f5, b/460426800)
  • درحال برداشتن میاناهای برنامه‌سازی کاربردی منسوخ‌شده در SpatialAlignment. (Ib0b61، b/468011887)
  • منسوخ کردن SpatialLayoutSpacer و معرفی SpatialSpacer. (I2ebf3، b/466071383)
  • ‫UserSubspace API به‌روز شد تا اصطلاح «قفل کردن تنبل» با «قفل کردن نرم» جایگزین شود. (I9ded1، b/464035984)

نسخه 1.0.0-alpha09

‫۳ دسامبر ۲۰۲۵

‫androidx.xr.compose:compose:1.0.0-alpha09 و androidx.xr.compose:compose-testing:1.0.0-alpha09 منتشر شده‌اند. نسخه 1.0.0-alpha09 حاوی این ارسال‌ها است.

تغییرات میانای برنامه‌سازی کاربردی

  • افزودن LookAtUser و اصلاح‌کننده‌های «تابلو آگهی» که به محتوا امکان می‌دهد همیشه رو به کاربر باشد. (I49b99)
  • امکان تنظیم InteractionPolicy روی SpatialExternalSurfaces و SpatialPanels را اضافه می‌کند و امکان تشخیص کلیک‌ها و دیگر رویدادهای ورودی سه‌بعدی را فراهم می‌کند. (Iae155)
  • اندازه و سربار اصلاح‌گر requiredSize با عرض، ارتفاع، و عمق به‌عنوان مقادیر Dp اضافه شد. (I92f79)
  • رابط ParentLayoutParamsModifier اکنون DelegatableSubspaceNode را گسترش می‌دهد. (I1a6d4)
  • ApplicationSubspace منسوخ شده است و Subspace API جایگزین آن شده است.
    • رفتار Subspace API تغییر کرده است تا فقط یک زیرفضای سراسری برنامه را در حالت و مقیاس توصیه‌شده ارائه دهد.
    • PlanarEmbeddedSubspace API برای ارائه زیرفضاهای جاسازی‌شده در زمینه‌های دوبعدی معرفی شده است. (Id3343)
  • پرچم shouldAutoInvalidate به میانای برنامه‌سازی کاربردی SubspaceModifier.Node اضافه شد. (I93902)
  • Added required(Size|Width|Depth|Height)In APIs that allow developers to constrain a @SubspaceComposable's size to a specific range, disregarding the parent's incoming measurement constraints. (Ifaa78)
  • SubspaceModifier.onSizeChanged اضافه شد که یک فراخوانی ساده و متمرکز برای توسعه‌دهندگان فراهم می‌کند تا هنگام تغییر اندازه @SubspaceComposable واکنش نشان دهند. (I994f9)
  • Volume API برداشته شد. باید به‌جای Volume API از SceneCoreEntity API استفاده شود. (I4162b)
  • ‫SubspaceLayoutModifierNode.requestRelayout به invalidateMeasurement/invalidatePlacement تقسیم شد. (I14805)
  • ‫SpatialGltfModel API اضافه شد که به توسعه‌دهندگان امکان می‌دهد glTF را در compose ارائه کنند. (Icc91f)
  • معرفی SpatialGltfModel composable API برای رندر کردن آسان glTF‏ (Iade67)

رفع اشکال‌ها

  • اشکال چیدمان در SceneCoreEntity برطرف شد. اکنون باید محدودیت‌هایش را به‌درستی رعایت کند. (I11bb8)
  • Lower jxr-compose modules to Compile sdk = 34 (I2d5db)

نسخه 1.0.0-alpha08

‫۲۲ اکتبر ۲۰۲۵

‫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)

رفع اشکال‌ها

  • جلوگیری از خرابی هنگام ازبین بردن «فعالیت» با Subspace. (I595a1)

نسخه 1.0.0-alpha07

‫۲۴ سپتامبر ۲۰۲۵

‫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 معرفی شد. این API جدید گزینه‌های چیدمان آشنایی را از Compose دوبعدی ارائه می‌دهد، ازجمله Start،‏ End،‏ Center،‏ SpaceBetween،‏ SpaceAround، و SpaceEvenly، با پشتیبانی کامل از هر دو جهت چیدمان چپ‌به‌راست و راست‌به‌چپ. (I7db38، b/436289959)
  • میانای پایه‌ای برای SubspaceModifier.Node اضافه شد تا ایمنی تایپی و قابلیت استفاده از میاناهای افزونه بهبود یابد؛ مانند
    • CompositionLocalConsumerSubspaceModifierNode
    • LayoutCoordinatesAwareModifierNode
    • SubspaceLayoutModifierNode
    • CoreEntityNode (internal) (Iede00, b/440599394, b/440599394)
  • Unrestrict SpatialExternalSurface (I33315, b/439646773)
  • ‫SubspaceModifier را به Subspace composables معرفی کنید و پارامتر constraints را با SubspaceModifier با SubspaceModifiers مرتبط با اندازه جایگزین کنید. اگر allowUnboundedSubspace درست باشد، «زیرفضاها» همچنان می‌توانند محدودیت‌های نامحدود داشته باشند. (Ib06e6، b/433331675)
  • Deprecating movable and resizable SubspaceModifiers now that DragPolicy() and ResizePolicy() are a part of the SpatialPanel and SpatialExternalSurface API (I397bf, b/437924639)
  • پشتیبانی از LayoutDirection در چیدمان‌های فضایی اضافه شد. اکنون Composable بااستفاده از SpatialAlignment عناصر را به‌درستی در بافت‌های چپ‌به‌راست و راست‌به‌چپ قرار می‌دهد. (I964bb، b/436300273)
  • پارامترهای «قابل‌تغییر اندازه» و «قابل‌جابه‌جایی» را به میاناهای برنامه‌سازی کاربردی Panel اضافه کنید تا مطمئن شوید این رفتارها فقط برای محفظه‌های پشتیبانی‌شده اعمال می‌شود. (Id491c)
  • sizeIn، widthIn، heightIn، depthIn SubspaceModifiers اضافه شد که به شما امکان می‌دهد محدودیت‌های دقیق حداقل و حداکثر را برای عرض، ارتفاع، و عمق تنظیم کنید. (I1af09، b/433330761)

نسخه 1.0.0-alpha06

‫۱۳ اوت ۲۰۲۵

‫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

‫۳۰ ژوئیه ۲۰۲۵

‫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 Composable جدید که کره‌های ۱۸۰ و ۳۶۰ درجه را نشان می‌دهند. (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)
  • اکنون «زیرفضاها» و «مدارگردها» وضعیت داخلی خود را در فضای اصلی و زمانی که برنامه در پس‌زمینه است حفظ خواهند کرد. در حالت فضای خانه، 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)
  • Update SpatialElevation to use min size to no longer use hard coded size (I2dbe6, b/427785338)
  • Update how we scrim the SpatialAcitivityPanel to update when a key variable is modified. (I0f64d، b/427999029)
  • VolumeConstraints.Unbounded را بردارید و به‌جای آن مقادیر محدودیت پیش‌فرض را روی معادل آن تنظیم کنید. (Ie24ec، b/407938414)
  • SpatialFeatheringSize is no longer public (I1c15b, b/399432430)
  • ‫Placeable واقعیت گسترده به SubspacePlaceable تغییر نام داد تا از Placeable Compose متمایز شود. (I74874)
  • Removing Orbiter settings and adding shouldRenderInNonSpatial as a new param. علاوه‌براین، کلاس EdgeOffset برداشته می‌شود و orbiterOffsetType به‌عنوان پارامتر جدیدی برای ادغام کردن توابع Orbiter() اضافه می‌شود. و همچنین تغییر نام OrbiterEdge به ContentEdge. (Iebf3d)
  • نام Measurable به SubspaceMeasurable تغییر کرد تا نوع آن از نوع Measurable در Compose متمایز شود. (I9726c)
  • تغییر نام MeasureResult به SubspaceMeasureResult (I9f34d)
  • ‫setSubspaceContent API را به‌نفع استفاده از setContent در Compose با Subspace composable حذف کردیم. (Ifff4c، b/421427391، b/421427391)
  • نام MeasurePolicy به SubspaceMeasurePolicy تغییر کرد. (I37a9b، b/422553904)
  • SubspaceSemanticsInfo را به یک واسط مهروموم‌شده تبدیل کنید زیرا بدون پیش‌فرض‌ها نمی‌توانیم اعضا را اضافه کنیم. (I372f9، b/423704068)
  • Updated SpatialExternalSurface documentation, renamed ContentSecurityLevel to SurfaceProtection (I3c460, b/420982808)
  • سازنده سربارگذاری‌شده برای اصلاح‌گر قابل‌جابه‌جایی ارائه شد که امکان لنگراندازی را فراهم می‌کند. (Ic0c70)
  • ارائه‌دهنده موقعیت بیشتری برای نکته‌ابزارها اضافه شده است تا توسعه‌دهندگان بتوانند کنترل کنند که نکته‌ابزار در بالا، پایین، چپ، یا راست لنگر قرار گیرد. افزودن میانای برنامه‌سازی کاربردی که «شکل» را برای نشانگرهای درج می‌گیرد تا بتوان شکل‌های سفارشی بیشتری ارائه کرد. (Ie513c، b/374766087، b/418854637)
  • ‫CoreEntity به‌عنوان PublishedApi برداشته شد (Ifee05)

رفع اشکال‌ها

  • مشکل چشمک زدن SpatialDialog هنگام پردازش برطرف شد. (Ife73c، b/401619909)
  • مشکلی را برطرف می‌کند که در آن SpatialDialog نمی‌توانست «پانل فعالیت» را تیره کند. (I8ca6c،‏ b/367442109)
  • Fix XR dialog not showing some content (I17cd5, b/418062437)
  • مشکل بسته شدن SpatialPopup هنگام کلیک کردن در داخل محتوا برطرف شد. (If262c، b/417245722)
  • مشکلی که باعث می‌شد هنگام زنجیره‌ای کردن resizable().movable()، اندازه SpatialPanel به‌درستی به اندازه جدید تغییر نکند برطرف شد. (I02ee3، b/422264230)
  • Fixed topBar overlapping with menu in SpatialComposeVideoPlayer (Id33bc, b/427168167)
  • Fixed corner radius not rendering (I975fe, b/428261830)

نسخه 1.0.0-alpha04

۷ مه ۲۰۲۵

‫androidx.xr.compose:compose:1.0.0-alpha04 و androidx.xr.compose:compose-testing:1.0.0-alpha04 منتشر شده‌اند. نسخه 1.0.0-alpha04 حاوی این موارد ثبت است.

ویژگی‌های جدید

  • رابط CompositionLocalConsumerSubspaceModifierNode اضافه شد تا به انواع SubspaceModifier سفارشی اجازه دهد به مقادیر محلی ترکیب‌بندی دسترسی داشته باشند.
  • ‫SpatialPanel API جدیدی اضافه شد که از سبک پیاده‌سازی compose AndroidView پیروی می‌کند و ViewBased SpatialPanel قبلی را منسوخ می‌کند.
  • شیء همراه VolumeConstraints.Unbounded که نشان‌دهنده محدودیت‌های نامحدود است اضافه شد.
  • SubspaceModifier.onPointSourceParams اضافه شد تا منبع صوتی فضایی‌شده مجاز شود.
  • ApplicationSubspace عمومی اضافه شده است که VolumeConstraints اختیاری را برای تعریف ناحیه سه‌بعدی که برنامه می‌تواند محتوای فضایی را در آن پرداز کند ارائه می‌دهد. به‌طور پیش‌فرض، اگر هیچ محدودیتی مشخص نشده باشد، «زیرفضا» ازنظر عرض و ارتفاع به میدان دید فعلی SpatialUser محدود خواهد شد. کاربران می‌توانند محدودیت‌هایی را ارائه دهند تا درصورت عدم امکان تعیین میدان دید از آن‌ها استفاده شود. درغیراین‌صورت، از مقادیر پیش‌فرض عرض و ارتفاع میدان دید استفاده می‌شود.
  • ‫SpatialExternalSurface اضافه شد که می‌تواند برای رندر کردن محتوای برجسته‌نمایی استفاده شود. SpatialExternalSurface با اصلاح‌کننده‌ها (به‌جز آلفا) و جلوه محو کردن لبه قابل‌سفارشی‌سازی است.
  • pointerHoverIcon «اصلاح‌کننده زیرفضا» جدیدی اضافه شده است که به کاربران امکان می‌دهد نماد اشاره‌گر فضایی را تنظیم کنند.

تغییرات میانای برنامه‌سازی کاربردی

  • محدودیت RequiresApi(34) در همه بسته‌های Jetpack XR برداشته شد. این محدودیت زائد بود زیرا Jetpack XR درحال‌حاضر فقط در دستگاه‌های دارای سطح میانای برنامه‌سازی کاربردی ۳۴ و بالاتر دردسترس است. (Iae0f8)
  • پروژه‌های منتشرشده با Kotlin 2.0 برای استفاده به KGP 2.0.0 یا جدیدتر نیاز دارند. (Idb6b5)
  • مدیریت دکمه «برگشت» اکنون در پانل‌های فضایی بدون فعالیت‌های جاسازی‌شده کار خواهد کرد. برای اینکه مدیریت دکمه برگشت کار کند، باید android:enableOnBackInvokedCallback="true" را در مانیفست Android مشخص کنید.
  • اکنون «مدیریت دکمه برگشت» در کادرهای گفتگوی فضایی کار می‌کند. برای اینکه مدیریت برگشت کار کند، باید android:enableOnBackInvokedCallback="true" را در مانیفست Android مشخص کنید.
  • SpatialPanelهای مبتنی بر Compose و مبتنی بر View اکنون می‌توانند اندازه خود را براساس محتوایشان تغییر دهند.
  • اکنون توسعه‌دهندگان می‌توانند مقادیر SpatialElevationLevel سفارشی خودشان را تنظیم کنند و به سطوح ازپیش‌تعریف‌شده محدود نیستند.
  • اکنون می‌توان سطح ارتفاع Orbiter را ازطریق پارامتر elevation سفارشی‌سازی کرد.
  • اکنون می‌توان زیرفضا را به‌طور پیش‌فرض با میدان دید SpatialUser در پهنا و ارتفاع محدود کرد. اگر میدان دید قابل تعیین نباشد، از مقادیر پیش‌فرض عرض و ارتفاع میدان دید استفاده می‌شود.
  • فراخوانی‌های برگشتی جدید onMoveStart و onMoveEnd به اصلاح‌کننده Movable اضافه شد. وقتی کاربر جابه‌جایی فضای فرعی ترکیب‌پذیر را با اصلاح‌کننده جابه‌جایی شروع و پایان می‌دهد، بازخوان‌های onMoveStart و onMoveEnd فراخوانده می‌شوند.
  • پارامتر name از میاناهای برنامه‌سازی کاربردی فضایی مانند SpatialRow و SpatialPanel برداشته شده است. برای اشکال‌زدایی درخت‌های ترکیب‌بندی فضایی، از SubspaceModifier.testTag استفاده کنید.
  • یک سربار پشتیبانی‌نشده از SpatialPopup که فقط spatialElevationLevel و content دارد برداشته شد. لطفاً از میانایی استفاده کنید که از onDimissRequest پشتیبانی می‌کند.
  • فراخوانی برگشتی onPoseChange از اصلاح‌کننده Movable برداشته شده است. درعوض از onMove استفاده کنید.
  • اگر SubspaceModifiers جدا شده باشد یا درحال جدا شدن باشد، دیگر جلوه‌هایش را اعمال نخواهد کرد.
  • ‫SpatialRow API موجود به SpatialRow و SpatialCurvedRow تقسیم شده است. اگر قبلاً از پارامتر curveRadius مربوط به SpatialRow استفاده می‌کردید، اکنون به‌جای آن از SpatialCurvedRow استفاده کنید که عملکرد یکسانی دارد.
  • MainPanel و ActivityPanel دیگر هنگام اجرا در تصویر سیستم مشابه اخیر، نوار عنوان ندارند.
  • اصلاح‌کننده‌های آلفا و مقیاس اکنون قابل‌انباشت هستند و مقادیر آن‌ها برای مقدار آلفا یا مقیاس نهایی اعمال‌شده ضرب خواهد شد.
  • فراخوانی برگشتی onPoseChange از اصلاح‌کننده Movable برای انجام حرکت ژست روان‌تر بهینه‌سازی شده است.
  • اصلاح‌کننده‌های قابل‌جابه‌جایی و قابل‌تغییر اندازه اکنون فراخوانی‌های برگشتی خود را در رشته اصلی انجام می‌دهند تا اطمینان حاصل شود که تغییرات وضعیت باعث بازترکیب می‌شوند.
  • مشاهده وضعیت به فازهای چیدمان و اندازه‌گیری اضافه شد تا اطمینان حاصل شود که تغییرات وضعیت در SubspaceLayout باعث راه‌اندازی مجدد چیدمان می‌شود.
  • به‌روزرسانی‌های زنجیره اصلاح‌کننده بهینه‌سازی شد تا از اصلاح‌کننده‌های موجود بهتر استفاده شود.

رفع اشکال‌ها

  • وقتی SpatialDialog نشان داده می‌شود، تار کردن متوقف می‌شود. (Ic4594)
  • درخواست‌های بازآرایی که هنگام جدا شدن گره‌های اصلاح‌کننده انجام می‌شوند، اکنون نادیده گرفته خواهند شد.
  • مراحل بازآرایی که توسط اصلاح‌کننده‌های Movable و Resizable راه‌اندازی می‌شدند برداشته شد.
  • خرابی در ترکیب‌پذیر MainPanel() که وقتی یکی از ابعاد به‌طور مستقیم یا درطول محاسبه چیدمان (مثلاً محاسبه SpatialRow/SpatialColumn) روی صفر تنظیم می‌شد رخ می‌داد برطرف شد. اکنون پانل پنهان خواهد شد. توجه داشته باشید که این اصلاح به‌طور خاص به ازکارافتادن‌ها درطول مرحله چیدمان می‌پردازد؛ تغییر اندازه پانل به صفر ازطریق تعامل کاربر به‌طور جداگانه رسیدگی خواهد شد. پانل پنهان فاقد امکانات واسط کاربر است.
  • مشکل maintainAspectRatio از اصلاح‌کننده تغییراندازه برطرف شد. اکنون نسبت ابعادی باید حفظ شود.
  • مشکل «زیرفضاهای» تودرتو که باعث می‌شد برای یک فریم در موقعیت نادرستی قرار بگیرند برطرف شد.
  • مشکلی که باعث می‌شد گوشه‌های گرد گاهی اوقات در جایی که باید اعمال نشوند برطرف شد.
  • NestedSubspaces دیگر برای یک فریم در مکان اشتباه نشان داده نخواهد شد.

نسخه 1.0.0-alpha03

‫۲۶ فوریه ۲۰۲۵

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

‫۱۲ فوریه ۲۰۲۵

‫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 به ۲۴ کاهش یافت. همه میاناهای برنامه‌سازی کاربردی Jetpack XR همچنان در زمان اجرا به میانای برنامه‌سازی کاربردی ۳۴ نیاز دارند.
  • سازنده‌های Orbiter EdgeOffset.inner، EdgeOffset.outer، و EdgeOffset.overlap دیگر روش‌های @Composable نیستند، که به آن‌ها اجازه می‌دهد در زمینه‌های غیرقابل‌ترکیب استفاده شوند.
  • Update Spatial Elevation Levels to match the latest UX spec.
  • میانای SubspaceSemanticsInfo را در MeasurableLayout پیاده‌سازی کنید.
  • نام SubspaceModifierElement به SubspaceModifierNodeElement تغییر کرد.

رفع اشکال‌ها

  • اصلاحاتی برای پایدار کردن سفارش SubspaceModifier. SubspaceModifier باید قابل‌اعتمادتر عمل کند. اصلاح‌کننده‌های جابه‌جایی، چرخش، مقیاس، قابل‌حرکت، و قابل‌تغییر اندازه اکنون باید به هر ترتیبی قابل‌استفاده باشند.

نسخه 1.0.0-alpha01

‫۱۲ دسامبر ۲۰۲۴

‫androidx.xr.compose:compose-*1.0.0-alpha01 منتشر شده است.

ویژگی‌های نسخه اولیه

  • اولین نسخه توسعه‌دهنده Jetpack Compose برای XR. از مفاهیم آشنای Compose مانند ردیف‌ها و ستون‌ها برای ایجاد چیدمان‌های میانای کاربر فضایی در واقعیت گسترده استفاده کنید، چه درحال انتقال یک برنامه دوبعدی موجود به واقعیت گسترده باشید و چه درحال ایجاد یک برنامه واقعیت گسترده جدید از ابتدا باشید. این کتابخانه ترکیب‌شدنی‌های فضایی و زیرفضایی را ارائه می‌دهد: مانند پانل‌های فضایی و مدارگردها، که به شما امکان می‌دهند رابط کاربری مبتنی بر Views یا Compose دوبعدی موجود خود را در یک چیدمان فضایی قرار دهید. این نسخه، Volume subspace composable را معرفی می‌کند که به شما امکان می‌دهد موجودیت‌های SceneCore، مانند مدل‌های سه‌بعدی، را نسبت به واسط کاربر خود قرار دهید. در این راهنمای توسعه‌دهندگان بیشتر بدانید:

    • Subspace: این ترکیب‌پذیر را می‌توان در هرجایی از سلسله‌مراتب واسط کاربر برنامه‌تان قرار داد، که به شما امکان می‌دهد چیدمان‌های واسط کاربر دوبعدی و فضایی را بدون ازدست دادن بافت بین فایل‌ها حفظ کنید. این کار هم‌رسانی مواردی مانند معماری برنامه موجود بین XR و سایر ضرایب شکل را آسان‌تر می‌کند، بدون اینکه لازم باشد وضعیت را در کل درخت میانای کاربری خود بالا ببرید یا معماری برنامه‌تان را بازسازی کنید.

    • SpatialPanel: پانل فضایی یک ترکیب‌پذیر زیرفضایی است که به شما امکان می‌دهد محتوای برنامه را نمایش دهید – برای مثال، می‌توانید بازپخش ویدیو، تصاویر ثابت، یا هر محتوای دیگری را در پانل فضایی نمایش دهید.

    • Orbiter: Orbiter یک مؤلفه واسط کاربر فضایی است. این نوار برای پیوست شدن به پانل فضایی مربوطه طراحی شده است و حاوی موارد کنش بافتاری و پیمایش مربوط به آن پانل فضایی است. برای مثال، اگر پانلی فضایی برای نمایش محتوای ویدیویی ایجاد کرده‌اید، می‌توانید کنترل‌های بازپخش ویدیو را در داخل یک مدارگرد اضافه کنید.

    • حجم: موجودیت‌های SceneCore، مانند مدل‌های سه‌بعدی، را نسبت به میانای کاربر خود قرار دهید.

  • چیدمان فضایی: می‌توانید چندین پانل فضایی ایجاد کنید و آن‌ها را بااستفاده از SpatialRow، SpatialColumn، SpatialBox، و SpatialLayoutSpacer در «چیدمان فضایی» قرار دهید. از SubspaceModifier برای سفارشی‌سازی کردن چیدمان استفاده کنید.

  • مؤلفه‌های واسط کاربر فضایی: این عناصر را می‌توان در واسط کاربر دوبعدی شما مجدداً استفاده کرد و ویژگی‌های فضایی آن‌ها فقط زمانی قابل‌مشاهده خواهد بود که قابلیت‌های فضایی فعال باشند.

    • SpatialDialog: پانل کمی در عمق z به عقب رانده می‌شود تا کادر گفتگوی برجسته‌ای نمایش داده شود.
    • SpatialPopUp: پانل کمی در عمق z به عقب رانده می‌شود تا بالاپر برجسته‌ای را نمایش دهد
    • ‫SpatialElevation: SpatialElevationLevel را می‌توان برای افزودن ارتفاع تنظیم کرد.
  • SpatialCapabilities: قابلیت‌های فضایی می‌توانند با تعامل کاربران با برنامه یا سیستم شما تغییر کنند، یا حتی می‌توانند توسط خود برنامه شما تغییر کنند—برای مثال، رفتن به «فضای خانه» یا «فضای کامل». برای جلوگیری از بروز مشکل، برنامه‌تان باید LocalSpatialCapabilities.current را بررسی کند تا مشخص شود کدام میاناهای برنامه‌سازی کاربردی در محیط فعلی پشتیبانی می‌شوند. isSpatialUiEnabled: عناصر میانای کاربر فضایی (مثلاً SpatialPanel) isContent3dEnabled: اشیاء سه‌بعدی isAppEnvironmentEnabled: محیط isPassthroughControlEnabled: اینکه برنامه می‌تواند حالت عبور را کنترل کند یا نه isSpatialAudioEnabled: صدای فضایی

مشکلات شناخته‌شده

  • درحال‌حاضر برای استفاده از Jetpack Compose برای XR، حداقل SDK‏ ۳۰ لازم است. به‌عنوان راه‌حل، می‌توانید ورودی مانیفست <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> زیر را اضافه کنید تا بتوانید با minSDK‏ ۲۳ بسازید و اجرا کنید.
  • برنامه‌های Jetpack XR درحال‌حاضر نیاز به درخواست اجازه android.permission.SCENE_UNDERSTANDING در AndroidManifest دارند.
  • وقتی برنامه‌ای مستقیماً بااستفاده از ویژگی PROPERTY_XR_ACTIVITY_START_MODE در مانیفست خود در «فضای کامل» راه‌اندازی می‌شود، «فعالیت‌ها/برنامه‌ها» ابتدا در «فضای خانه» باز می‌شوند و سپس به «فضای کامل» منتقل می‌شوند.
  • glTFها در «ترکیب‌پذیرهای حجم» ممکن است در ابتدا در مکان اشتباهی چشمک بزنند.
  • استفاده از SpatialDialog در پانلی که به‌طور قابل‌توجهی جابه‌جا شده است، محتوا را در جهت اشتباهی سوق می‌دهد.