‫Jetpack Compose ל-XR

בנייה הצהרתית של פריסות ממשק משתמש מרחביות שמנצלות את היכולות המרחביות של Android XR.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫21 באוקטובר 2026 - - ‎1.0.0-beta02 -

הצהרה על יחסי תלות

כדי להוסיף תלות ב-XR Compose, צריך להוסיף לפרויקט את מאגר Google Maven. מידע נוסף זמין במאמר מאגר ה-Maven של Google.

אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:

מגניב

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

מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.

משוב

המשוב שלכם עוזר לנו לשפר את 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 מכילה את השמירות האלה.

שינויים ב-API

  • הספריות עכשיו מטרגטות את Kotlin 2.2 ודורשות את kotlinc 2.2‏ (I82396, ‏ b/498369605)
  • השם של הפרמטר halfLifeMs של FollowMode.soft() שונה ל-halfLifeMillis. (I39187)
  • המרנו את PitchLimits ל-@JvmInline value class, וארזנו שני ערכים מסוג float ב-Long כדי לבטל את הקצאות האובייקטים. (Id43c3)
  • נוסף פרמטר חדש ל-FollowMode.soft: הפרמטרים halfLifeMs,‏ startDelay ו-startThresholds. הסרנו את הפרמטר durationMs כי הוא כבר לא נחוץ, כחלק מהמעבר מאלגוריתם smoothStep לאלגוריתם exponentialDecay. (If0140)
  • מסירים את עומס היתר של SpatialActivityPanel שהוצא משימוש. במקום זאת, צריך להשתמש בעומס היתר של SpatialActivityPanel שמקבל SpatialActivityPanelController. (I5abc3)
  • הפעלת מעברים בין תוכן Composable בתלת-ממד ובדו-ממד בפעילות אחת ב-FullSpaceMode. השינוי הזה מוגבל על ידי SpatialComposeFlags.isMainPanelResetOnSubspaceDisposeEnabled. (I4e237)
  • הוספנו עומס יתר ניסיוני של Subspace שכולל פרמטר FollowTarget כדי לתמוך בתוכן הבא. (Iec1a9)
  • הסרת משתנים ניידים שיצאו משימוש. במקום זאת, צריך להשתמש ב-modifier החדש שניתן להזזה, שמקבל את ה-MovePolicy החדש כפרמטר. (Ib135d)
  • הסרת DragPolicy שיצא משימוש. במקומה צריך להשתמש במדיניות SubspaceModifier.movable(). (I108d4)
  • הוצאו משימוש עומסי יתר (overloads) של Slider ו-RangeSlider ללא שמירת מצב (stateless) לטובת גרסאות עם שמירת מצב (stateful). שינינו את השם של activeRangeStart ו-activeRangeEnd ב-RangeSliderState ל-startValue ו-endValue, והוצאנו משימוש ממשקי API ישנים יותר של Slider שלא קודמו והיו ניסיוניים עם DeprecationLevel.HIDDEN. (If8995)

תיקוני באגים

  • תוקנה הבעיה RotateToLookAtUser על ידי הוספת poseInActivitySpace כדי להבטיח חישוב נכון של התנוחה לכל סוגי תת-המרחבים, כולל אלה שמחוברים לעוגנים או למשתמשים.Ica367b
  • תוקנה קריסה של Constraints כש-Orbiter מחובר לחלוניות גדולות (I8c4bf)
  • תוקן באג ב-SubspaceLayoutNode שבו removeAll() גרם להקצאות מיותרות של ArrayList. בנוסף, תיקנו את הביצועים של חישוב העומק. I34a10a
  • התלות androidx.lifecycle:lifecycle-runtime עודכנה לגרסה 2.10.0. הגרסה הזו נדרשת כדי להריץ בדיקות lint של זמן ריצה של מחזור חיים בחבילה עם AGP בגרסה 9.5.0-alpha04 ואילך. (I99bfd, ‏ b/556807521)
  • שיפור של kdocs שקשורים ל-AudioOutputProvider כדי להדגיש שלא צריך להשתמש בהם שוב עם כמה מכונות של ExoPlayer (I6b18e)
  • תיקון בעיות קלות באיות ובדקדוק ב-kdoc‏ (Id3ba6)

בעיות מוכרות

  • הגרסה הזו של androidx.xr.compose תלויה ב-androidx.xr.scenecore:1.0.0-rc01, שיש בה דליפת זיכרון ידועה. בתצורת ה-build, אפשר לשנות באופן מפורש את התלות ב-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 מכילה את השמירות האלה.

שינויים ב-API

  • הוסר DragPolicy שהוצא משימוש. במקומה צריך להשתמש במדיניות SubspaceModifier.movable(). (I108d4)
  • הסרנו את ResizePolicy שהוצא משימוש ואת השימושים שלו ב-SpatialPanel וב-SpatialExternalSurface. הסרת פונקציית SubspaceModifier.resizable שיצאה משימוש. במקום זאת, צריך להשתמש ב-SubspaceModifier.resizable החדש עם ResizePolicy חדש. (I59e6b)
  • הוספנו את הפרמטר isPitchUpdateEnabled כדי לאפשר הפעלה או השבתה של מעקב אחר גובה הצליל באופן עצמאי. (Ie9e86)
  • הוסרה האפשרות להגדיר את pitchLimits כ-null, והשם של PitchLimits.UNCONSTRAINED שונה ל-PitchLimits.FullRange. (I0154f)
  • הפונקציה ExposedDropdownMenu היא עכשיו פונקציית הרחבה ב-ExposedDropdownMenuBoxScope במקום פונקציית חבר. יכול להיות שתצטרכו לעדכן את הקוד באמצעות ייבוא חדש. (Ie8a65)
  • הוסרה המחלקה SurfaceProtection שהוצאה משימוש. במקומה צריך להשתמש במדיניות SpatialExternalSurfaceProtection. (Iab2c6)
  • הפונקציה Orbiter שמקבלת OrbiterPoseProvider הוצאה משימוש, ובמקומה משתמשים בפונקציה שמשתמשת ב-SpatialAlignment. (I4d12b)
  • עכשיו נדרש SpatialActivityPanelController (שנוצר באמצעות rememberSpatialActivityPanelController) כדי להפעיל ולנהל פעילויות מוטמעות ב-SpatialActivityPanel. (Id25c6)
  • הסרנו את הפרמטר upDirection מ-rotateToLookAtUser והוספנו פרמטרים של אילוצי סיבוב (isYawUpdateEnabled ו-pitchLimits). (I1370a)

תיקוני באגים

  • תוקנו כמה בעיות ב-InteractionPolicy. האפליקציה קרסה אם אירוע קלט התרחש בדיוק כשה-Composable או הצאצא (למשל, Orbiter) התחילו רצף של סילוק. העדכון גם פותר בעיה שבה הילד או הילדה מקבלים אירועי ריחוף. (Ifc477)
  • גודל החלונית ב-RotateToLookAtUserActivity הוקטן כדי למנוע חיתוך במכשירים עם שדה ראייה קטן יותר. (I8d672)

בעיות מוכרות

  • יש בעיה בחלוניות של Compose XR: אם יוצרים הרבה חלוניות ב-Activity אחת, יכול להיות שחלק מהתוכן שמוצג ייפגם, גם אחרי שהחלוניות נסגרות.

גרסה 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 מכילה את השמירות האלה.

שינויים ב-API

  • צריך להסיר את מחלקת הערכים Meter, היא מוחלפת ב-virtualPixelDensity ב-Scenecore. (I690ee)
  • ‫SpatialGltfModel API הוא עכשיו ניסיוני וצריך להביע הסכמה כדי להשתמש בו. (I4557e)
  • הפיכת system resizable ל-nullable‏ (Ib0093)
  • השדה Density נחשף ב-SubspaceSemanticsInfo לצורך בדיקה. (I2e826)
  • שינוי השם של אפשרות ברירת המחדל ResizePolicy ל-system והוספת אפשרות Default חדשה ללא פרמטרים (Ic8b16)
  • סימון של FollowTarget כניסיוני. כל ה-API של FollowingSubspace הוא עכשיו ניסיוני. (Id4ee3)
  • הסרת ממשקי API של GltfAnimation ‏ (Ic2894)
  • השם של ה-method‏ MovePolicy.default() עם הפרמטרים שונה ל-MovePolicy.system(). הוספנו את המאפיין val MovePolicy.Default כדי לייצג את התנהגות ברירת המחדל הרגילה של התנועה. (Iedcc9)
  • הרחבת דרישות ההצטרפות של ExperimentalMoveAnchorPolicy אל PlaneSemantic ו-PlaneOrientation (Ief927)
  • הסרת resetMins מהחשבון VolumeConstraints.offset (Ib2f2f)
  • הוסרה הפונקציה SceneCoreEntitySizeAdapter שיצאה משימוש. (Ib6722)
  • הוסרה עומס יתר (overload) של 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 מכילה את השמירות האלה.

שינויים ב-API

  • הסרת ממשקי API של ComponentOverride ‏ (I820c4)
  • ממשקי ה-API של 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) לכל טענות הנכוֹנוּת (assertion) הציבוריות של שוויון מיקום ומאפיינים של נקודה צפה (floating-point) ב-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 modifier. הפרמטר 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 והסרנו שיטות נפרדות של היסט כיווני לטובת API מאוחד של align. (I9bdb2, b/479805937)
  • הסרנו מ-SpatialConfiguration ממשקי API של מצב מרחב שהוצאו משימוש. (I1ef5c, ‏ b/458712461)
  • הושק SubspaceSemanticsConfiguration. זוהי הגדרה של מאפייני סמנטיקה לצומת מרחבי. המחלקה הזו חושפת באופן בטוח שיטות שאילתה לסמנטיקה תלת-ממדית, בלי לחשוף יכולות סמנטיות בסיסיות דו-ממדיות לצרכנים חיצוניים. (Id025e, b/460427288)
  • נוסף הרכיב SubspaceSemanticsPropertyReceiver: wrapper ייעודי שמגביל את מאפייני מאגר הפריסה התלת-ממדית לשדות חוקיים (בהתחלה testTag ו-contentDescription). (I5cf5c, b/460427288)

תיקוני באגים

  • הגדרנו את ברירת המחדל של hasContentDescription של המשנה הסמנטי להתאמה למחרוזת משנה. (I08214)
  • נוסף FollowBehavior.ExponentialDecay() מוגבל שמספק התנהגות מעקב רכה המונחית על ידי פיזיקה אלסטית. (I7449c, ‏ b/485639909, ‏ b/500493335)

רוב ממשקי ה-API יושפעו מהשינוי הזה. באופן ספציפי, 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 מכילה את השמירות האלה.

שינויים ב-API

  • הוצאנו משימוש את ResizePolicy ואת המשתנה הישן לשינוי הגודל, והחלפנו אותם בעומס יתר חדש של SubspaceModifier.resizable ו-SubspaceModifier.transformingResizable. (I9e4bc)
  • עדכנו את ממשקי ה-API של SpatialGltfModel: הוספנו תמיכה בטעינת מודלים ממשאבים דרך SpatialGltfModelSource.fromResource. שינינו את השם של המהירות ל-playbackSpeed ב-SpatialGltfModelAnimation והוספנו שיטת resume()‎. SpatialGltfModelStatus.Loaded ו-Loading הם עכשיו אובייקטים. (I523de)
  • ‫rotateToLookAtUser סומן כ-API ניסיוני. (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 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו את transformingMovable לתנועה תלת-ממדית שמוגדרת כברירת מחדל ומנוהלת על ידי המערכת, והוספנו עומס יתר חדש ל-movable כדי לטפל בהתנהגויות של תנועה בהתאמה אישית. (I50960)
  • השדה SpatialGltfModel.fromData() הוסר. (I4d083)
  • נוסף ממשק חדש לצומת של משתנה, SubspaceMeasuredSizeAwareModifierNode, שמספק קריאה חוזרת (callback) של onRemeasured אחרי שלב המדידה. עכשיו הממשק החדש הזה זמין גם ב-SubspaceLayoutAwareModifierNode. המשתנה onSizeChanged עודכן לשימוש ב-onRemeasured, כדי להבטיח שהקריאה החוזרת תופעל מיד אחרי המדידה, ולא אחרי המיקום. (Iafbae)
  • השדה InteractionPolicy עודכן לערך Interface (I0ff30)
  • עדכון של Compose compileSdk ל-API 37. כלומר, כשמשתמשים ב-Compose, נדרשת גרסת AGP מינימלית של 9.2.0. (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 מכילה את השמירות האלה.

שינויים ב-API

  • ממשק ה-API של Orbiter ממתין לשינויים נוספים. מומלץ להסתיר את הודעות ההוצאה משימוש של Orbiters ולעקוב אחרי השינויים ב-Orbiter בגרסאות הבאות.
  • אם אתם משתמשים ב-SceneCoreEntity כדי לעבד קובצי glTF, אתם צריכים לוודא שאתם מעבירים את session.scene.activitySpace לפרמטר parent של הקריאה ל-GltfModel.create כדי להבטיח שקובצי ה-glTF יעובדו.
  • הוספת API של SpatialGltfModel כדי לאפשר למפתחים להוסיף קובצי Gltf לאפליקציות Compose For XR שלהם. מפתחים יכולים גם לשלוח שאילתות לגבי אנימציות וצמתים בתוך המודלים שלהם ב-Gltf. (I8b542, ‏ b/495422586)
  • שינוי של SceneCoreEntitySizeAdapter ממחלקה לממשק (I5a784, ‏ b/475292310)
  • השם של SurfaceProtection שונה ל-SpatialExternalSurfaceProtection. עדכון של SpatialExternalSurface kdocs‏ (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)
  • ‫SpatialEnterTransition ו-SpatialExitTransition סומנו בתור @Immutable (If1710, ‏ b/487757837)
  • ה-API של SpatialGltfModel מסומן כמוגבל בגרסה הזו עד לבדיקות נוספות. (Ibf003, ‏ b/466090694)
  • השם של DeviceTrackingMode.LAST_KNOWN שונה ל-SPATIAL_LAST_KNOWN (עם חלופה שהוצאה משימוש), נוסף INERTIAL_LAST_KNOWN למעקב 3DoF ונוסף TRACKING_DEGRADED ל-TrackingState. (Ie661c, ‏ b/445466590)
  • הסרת SpatialLayoutSpacer שהוצא משימוש (I7b36c)
  • הסרת ה-API של המרווח הפנימי שהוצא משימוש (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 מכילה את השמירות האלה.

שינויים ב-API

  • מוסיפים את ה-API של SpatialGltfModel ואת ממשקי ה-API של SpatialGltfModelAnimation כדי לעבד קובצי glTF ולשלוט באנימציות. הערך של SpatialGltfModelState השתנה ל-AutoCloseable, ועכשיו צריך לסגור אותו כדי לפנות את המשאבים שלו. ‫(I11fde, ‏ b/466065486, ‏ b/481379924). עם זאת, ה-API של SpatialGltfModel מסומן כמוגבל בגרסה הזו עד לבדיקות נוספות. (Ibf003, ‏ b/466090694)
  • נוסף עומס יתר ריק שהוצא משימוש עבור SubspaceModifier.rotate. (Idceb6)
  • השם של הפונקציה SpatialSmoothFeatheringEffect השתנה ל-spatialSmoothFeatheringEffect והיא הועברה למודול draw. ערך ברירת המחדל של ריכוך SpatialExternalSurface עודכן ל-null, שמחקה את הפונקציונליות הישנה של ZeroFeatheringEffect. (I5fdaa, b/460426800)
  • בוצעה הסרה של onPointSourceParamsAvailable. בעתיד הקרוב יהיה זמין ממשק API אחר של אודיו מרחבי. (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 ובגרסאות הבאות שלהן. צריך לעדכן את האפליקציות המושפעות לגרסאות העדכניות.

שינויים ב-API

  • שינויים במרווח הפנימי של משנה מרחב המשנה כדי להתאים לכיוון הפריסה. (I53e25)
  • התיק SpatialCapabilities חסוי עכשיו ואי אפשר להאריך את תוקף הצו. (I07aef)
  • ממשקי ה-API‏ SpatialRow ו-SpatialColumn שמקבלים פרמטר SpatialAlignment כללי הוצאו משימוש. במקומם, צריך להשתמש בממשקי ה-API שמקבלים את verticalAlignment או horizontalAlignment עבור SpatialRow ו-SpatialColumn, בהתאמה. (Iec390)
  • שילוב של ממשקי API של פונקציות SubspaceLayout עם עומס יתר (Idd30a)
  • השם של SubspaceModifier.lookAtUser השתנה ל-rotateToLookAtUser והשם של הפרמטר up השתנה ל-upDirection. (Icafb8)
  • הפיכת SpatialRow לפונקציה מוטבעת (Ia2f20)
  • הפיכת SpatialColumn לפונקציה מוטבעת (I681be)
  • הוסר ה-API של לוח המודעות (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 מכילה את השמירות האלה.

שינויים ב-API

  • הסרת API שהוצא משימוש – ApplicationSubspace (Ia6596, ‏ b/468345186)
  • הערך SpatialShape עודכן לממשק אטום (I7e3f5, ‏ b/460426800)
  • הסרת ממשקי API שהוצאו משימוש ב-SpatialAlignment. (Ib0b61, b/468011887)
  • הוצאה משימוש של SpatialLayoutSpacer והשקה של SpatialSpacer. (I2ebf3, b/466071383)
  • עדכנו את ה-API של 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 מכילה את השמירות האלה.

שינויים ב-API

  • הוספת משתני ה-LookAtUser וה-Billboard שמאפשרים לתוכן לפנות תמיד אל המשתמש. (I49b99)
  • מוסיפה את היכולת להגדיר InteractionPolicy ל-SpatialExternalSurfaces ול-SpatialPanels, וכך מאפשרת זיהוי של קליקים ואירועי קלט תלת-ממדיים אחרים. (Iae155)
  • נוספו עומס יתר של שינוי גודל ו-requiredSize עם רוחב, גובה ועומק כערכי Dp. (I92f79)
  • הממשק ParentLayoutParamsModifier מרחיב עכשיו את DelegatableSubspaceNode. (I1a6d4)
  • האפשרות ApplicationSubspace הוצאה משימוש והוחלפה ב-Subspace API.
    • ההתנהגות של Subspace API השתנתה, ועכשיו הוא מספק רק מרחב משנה ברמת האפליקציה בתנוחה ובקנה המידה המומלצים.
    • ‫API של PlanarEmbeddedSubspace נוסף כדי לספק מרחבי משנה מוטמעים בהקשרים דו-ממדיים. (Id3343)
  • הוספנו את הדגל shouldAutoInvalidate ל-API של SubspaceModifier.Node. (I93902)
  • נוסף required(Size|Width|Depth|Height) בממשקי API שמאפשרים למפתחים להגביל את הגודל של @SubspaceComposable לטווח מסוים, בלי להתחשב במגבלות המדידה של ההורה. (Ifaa78)
  • הוספנו את SubspaceModifier.onSizeChanged, שמספק קריאה חוזרת (callback) פשוטה וממוקדת למפתחים כדי להגיב כשגודל של @SubspaceComposable משתנה. (I994f9)
  • הסרנו את Volume API. צריך להשתמש ב-API של SceneCoreEntity במקום ב-Volume API. (I4162b)
  • מפצלים את SubspaceLayoutModifierNode.requestRelayout ל-invalidateMeasurement/invalidatePlacement. (I14805)
  • הוספנו את ה-API של SpatialGltfModel שמאפשר למפתחים לעבד קובצי glTF ב-Compose. (Icc91f)
  • הוספנו את ה-API הניתן לשילוב 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 מכילה את השמירות האלה.

שינויים ב-API

  • הגדרת ResizePolicy השתנתה כדי לקבל את onResizeStart, onResizeUpdate ו-onResizeEnd. (I7e21f)

תיקוני באגים

  • מניעת קריסה כשמשמידים פעילות עם Subspace. (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 מכילה את השמירות האלה.

שינויים ב-API

  • שיפור של KDocs עבור SpatialMainPanel. (I27b70, ‏ b/444467891)
  • הוספנו את SpatialArrangement כדי לסדר את הצאצאים לאורך הציר הראשי בפריסות תלת-ממדיות כמו SpatialRow ו-SpatialColumn. ה-API החדש הזה מספק אפשרויות סידור מוכרות מ-2D Compose, כולל Start,‏ End,‏ Center,‏ SpaceBetween,‏ SpaceAround ו-SpaceEvenly, עם תמיכה מלאה בכיווני פריסה משמאל לימין ומימין לשמאל. (I7db38, b/436289959)
  • הוספנו ממשק בסיס ל-SubspaceModifier.Node כדי לשפר את מניעת שגיאות ההקלדה ואת נוחות השימוש בממשקי התוספים, כמו
    • CompositionLocalConsumerSubspaceModifierNode
    • LayoutCoordinatesAwareModifierNode
    • SubspaceLayoutModifierNode
    • ‫CoreEntityNode (פנימי) (Iede00, ‏ b/440599394, ‏ b/440599394)
  • Unrestrict SpatialExternalSurface (I33315, b/439646773)
  • הוספת SubspaceModifier לרכיבים של Subspace והחלפת הפרמטר constraints ב-SubspaceModifier עם SubspaceModifiers שקשור לגודל. אם המדיניות allowUnboundedSubspace מוגדרת כ-True, עדיין יכולות להיות במרחבי המשנה מגבלות לא מוגדרות. (Ib06e6, b/433331675)
  • הוצאה משימוש של SubspaceModifiers שניתן להזזה ולשינוי גודל, כי DragPolicy() ו-ResizePolicy() הם חלק מ-API של SpatialPanel ו-SpatialExternalSurface (I397bf,‏ b/437924639)
  • נוספה תמיכה ב-LayoutDirection בפריסות מרחביות. עכשיו, רכיבים שניתנים לשילוב ומשתמשים ב-SpatialAlignment ימקמו את האלמנטים בצורה נכונה גם בהקשרים של כתיבה משמאל לימין וגם בהקשרים של כתיבה מימין לשמאל. (I964bb, ‏ b/436300273)
  • הוספת פרמטרים של שינוי גודל והזזה לממשקי ה-API של 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)
  • הוספנו את ה-API של SceneCoreEntity כדי לשפר את יכולת הפעולה ההדדית בין SceneCore לבין Compose for XR. (I50bb3, ‏ b/423020989)
  • נוסף GravityAlignedsubspace API לתמיכה בתכונה GravityAligned ללא שינוי קנה מידה (I07359)

שינויים ב-API

  • ‫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 מאזהרה לשגיאה, כי לעיתים קרובות מתעלמים מאזהרות כשמשתמשים בצורה שגויה בממשקי API קומפוזביליים. (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 כדי להבדיל בין הסוג הזה לבין הסוג Measurable של Compose. (I9726c)
  • שינוי השם של MeasureResult ל-SubspaceMeasureResult (I9f34d)
  • הסרנו את ה-API של setSubspaceContent והחלפנו אותו ב-setContent של Compose עם Subspace קומפוזבילי. (Ifff4c, ‏ b/421427391, ‏ b/421427391)
  • השם של MeasurePolicy השתנה לשם SubspaceMeasurePolicy. (I37a9b, ‏ b/422553904)
  • צריך להפוך את SubspaceSemanticsInfo לממשק סגור כי לא נוכל להוסיף חברים בלי ברירות המחדל. (I372f9, ‏ b/423704068)
  • עדכנו את המסמכים של SpatialExternalSurface, שינינו את השם של ContentSecurityLevel ל-SurfaceProtection (I3c460, ‏ b/420982808)
  • הוספנו בנאי עמוס (overloaded) לשינוי של רכיבים שניתן להזיז, שמאפשר עיגון. (Ic0c70)
  • הוספנו עוד ספק מיקום להסברים קצרים, כך שמפתחים יכולים עכשיו לקבוע אם ההסבר הקצר יופיע מעל, מתחת, משמאל או מימין לעוגן. הוספת API שמקבל צורה של סמני הכנסה, כדי שאפשר יהיה לספק יותר צורות בהתאמה אישית. (Ie513c, ‏ b/374766087, ‏ b/418854637)
  • הסרת את CoreEntity בתור PublishedApi (Ifee05)

תיקוני באגים

  • תוקנה בעיה שבה SpatialDialog הבהב בזמן העיבוד. (Ife73c, b/401619909)
  • תוקנה בעיה שבה SpatialDialog לא הצליח להכהות את חלונית הפעילות. (I8ca6c, b/367442109)
  • תיקון: תיבת הדו-שיח של XR לא מציגה חלק מהתוכן (I17cd5, ‏ b/418062437)
  • תוקנה בעיה שבה SpatialPopup נסגר כשלוחצים בתוך התוכן. (If262c, ‏ b/417245722)
  • תוקנה הבעיה שבה, כשמשרשרים את resizable().movable(), הגודל של SpatialPanel לא השתנה כמו שצריך לגודל החדש. (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 בהתאמה אישית לגשת לערכים מקומיים של קומפוזיציה.
  • הוספנו ממשק API חדש של SpatialPanel שפועל לפי סגנון ההטמעה של AndroidView ב-Compose, והוצאנו משימוש את ViewBased SpatialPanel הקודם.
  • נוסף אובייקט נלווה מסוג VolumeConstraints.Unbounded שמייצג אילוצים לא מוגבלים.
  • הוספנו את SubspaceModifier.onPointSourceParams כדי לאפשר מקור אודיו מרחבי.
  • נוסף ApplicationSubspace ציבורי, שמציע VolumeConstraints אופציונלי להגדרת אזור תלת-ממדי שבו האפליקציה יכולה לעבד תוכן מרחבי. כברירת מחדל, אם לא צוינו אילוצים, המרחב המשני יוגבל על ידי שדה הראייה הנוכחי של SpatialUser ברוחב ובגובה. המשתמשים יכולים להגדיר אילוצים שישמשו את המערכת אם לא ניתן לקבוע את שדה הראייה. אחרת, המערכת תשתמש בערכי ברירת המחדל של הרוחב והגובה של שדה הראייה.
  • נוסף SpatialExternalSurface, שניתן להשתמש בו כדי לעבד תוכן סטריאוסקופי. אפשר להתאים אישית את SpatialExternalSurface באמצעות משתנים (חוץ מאלפא) ואפקט ריכוך קצוות.
  • נוסף משנה מרחב משנה חדש pointerHoverIcon שמאפשר למשתמשים להגדיר את הסמל של הסמן המרחבי.

שינויים ב-API

  • הוסרה ההגבלה RequiresApi(34) בכל חבילות Jetpack XR. ההגבלה הזו הייתה מיותרת כי Jetpack XR זמין כרגע רק במכשירים עם רמת API 34 ומעלה. (Iae0f8)
  • פרויקטים שפורסמו עם Kotlin 2.0 דורשים KGP 2.0.0 ואילך כדי לצרוך אותם. (Idb6b5)
  • הטיפול בחזרה יעבוד עכשיו בחלוניות מרחביות בלי פעילויות מוטמעות. כדי שהטיפול בפעולת החזרה יעבוד, צריך לציין את android:enableOnBackInvokedCallback="true" במניפסט של Android.
  • הטיפול בלחיצה על כפתור החזרה יעבוד עכשיו בתיבות דו-שיח מרחביות. כדי שהטיפול בלחצן החזרה יעבוד, צריך לציין את android:enableOnBackInvokedCallback="true" במניפסט של Android.
  • עכשיו אפשר לשנות את הגודל של SpatialPanel מבוסס-Compose ומבוסס-View לפי התוכן שלהם.
  • עכשיו המפתחים יכולים להגדיר ערכים מותאמים אישית משלהם ל-SpatialElevationLevel, והם לא מוגבלים לרמות שהוגדרו מראש.
  • עכשיו אפשר להתאים אישית את רמת הגובה של Orbiter באמצעות הפרמטר elevation.
  • עכשיו אפשר להגביל את המרחב המשני לפי שדה הראייה של SpatialUser ברוחב ובגובה כברירת מחדל. אם אי אפשר לקבוע את שדה הראייה, המערכת משתמשת בערכי ברירת המחדל של הרוחב והגובה של שדה הראייה.
  • נוספו קריאות חוזרות (callbacks) חדשות, onMoveStart ו-onMoveEnd, למשתנה Movable. הקריאות החוזרות (callbacks) onMoveStart ו-onMoveEnd נקראות כשהמשתמש מתחיל ומסיים להזיז רכיב קומפוזבילי של מרחב משנה באמצעות המשתנה הניתן להזזה.
  • הפרמטר name הוסר מממשקי API מרחביים כמו SpatialRow ו-SpatialPanel. כדי לנפות באגים בעצי קומפוזיציה מרחביים, צריך להשתמש במקום זאת ב-SubspaceModifier.testTag.
  • הוסר עומס יתר לא נתמך של SpatialPopup שיש לו רק spatialElevationLevel ו-content. צריך להשתמש בממשק שתומך ב-onDimissRequest.
  • הקריאה החוזרת (callback) של onPoseChange מהמשתנה Movable הוסרה. במקומה צריך להשתמש במדיניות onMove.
  • האפקטים של SubspaceModifiers לא יחולו יותר אם הם מנותקים או בתהליך ניתוק.
  • ה-API הקיים של SpatialRow פוצל ל-SpatialRow ול-SpatialCurvedRow. אם השתמשת בעבר בפרמטר curveRadius של SpatialRow, עליך להשתמש עכשיו ב-SpatialCurvedRow במקום זאת, שמציע את אותה התנהגות.
  • ב-MainPanel וב-ActivityPanel אין יותר שורות כותרת כשהם פועלים בקובץ אימג' של מערכת עדכנית דומה.
  • עכשיו אפשר להוסיף כמה משתני אלפא וקנה מידה, והערכים שלהם יוכפלו כדי לקבל את ערך האלפא או קנה המידה הסופי.
  • ביצענו אופטימיזציה לקריאה החוזרת (callback) של onPoseChange מהמשתנה Movable כדי שהתנועה של התנוחה תהיה חלקה יותר.
  • המשתנים לשינוי המיקום והגודל יבצעו עכשיו את הקריאות החוזרות (callbacks) שלהם בשרשור הראשי, כדי להבטיח ששינויי המצב יפעילו הרכבה מחדש.
  • הוספנו תצפית על המצב לשלבי הפריסה והמדידה כדי לוודא ששינויים במצב ב-SubspaceLayout יגרמו לפריסה מחדש.
  • עדכונים לשרשרת של משתני הצירוף שעברו אופטימיזציה, כדי לשפר את השימוש החוזר במשתני הצירוף הקיימים.

תיקוני באגים

  • הפסקת ההחשכה כשמוצג SpatialDialog. (Ic4594)
  • מעכשיו, המערכת תתעלם מבקשות לשינוי פריסה שיתבצעו בזמן שצומתי המשתנים מנותקים.
  • הוסרו שלבי פריסה מחדש שהופעלו על ידי משתני שינוי של Movable ו-Resizable.
  • תוקנה קריסה ברכיב ה-composable‏ 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 מכילה את השמירות האלה.

תכונות חדשות

  • עכשיו אפשר להכהות את התוכן של חלונית הפעילות כשמפעילים תיבת דו-שיח מרחבית.
  • עכשיו אפשר להשתמש ב-API של Orbiter בהקשרים של SubspaceComposable, והוא יצרף את Orbiters לרכיב ההורה הקרוב ביותר שמבוסס על SubspaceLayout.
  • הוספנו את LayoutCoordinatesAwareModifierNode כדי לאפשר שינויים מותאמים אישית שמבוססים על מיקום.
  • נוספו שיטות מחזור חיים של צירוף/ניתוק ל-SubspaceModifier.Node.
  • הוספנו את scaleWithDistance למגביל הניתן להזזה. כשהאפשרות scaleWithDistance מופעלת, הרכיב של מרחב המשנה שהועבר יגדל או יקטן. הוא גם ישמור על קנה המידה המפורש שהיה לו לפני ההזזה.

שינויים ב-API

  • הסרנו את SessionCallbackProvider והוספנו את SpatialCapabilities.

שינויים אחרים

  • הערך של minSDK הופחת ל-24. כל ממשקי ה-API של Jetpack XR עדיין דורשים את API 34 בזמן הריצה.
  • ‫ה-constructors של Orbiter EdgeOffset.inner,‏ EdgeOffset.outer ו-EdgeOffset.overlap הם כבר לא methods של @Composable, מה שמאפשר להשתמש בהם בהקשרים שאינם 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 למפתחים. אתם יכולים להשתמש במושגים מוכרים של פיתוח נייטיב, כמו שורות ועמודות, כדי ליצור פריסות של ממשק משתמש מרחבי ב-XR, בין אם אתם מעבירים אפליקציית דו-ממד קיימת ל-XR או יוצרים אפליקציית XR חדשה מאפס. הספרייה הזו מספקת רכיבים קומפוזביליים של מרחב משנה ומרחב: כמו לוחות מרחביים ורכיבי Orbit, שמאפשרים למקם את ממשק המשתמש הקיים ב-Compose דו-ממדי או מבוסס-תצוגות בפריסה מרחבית. היא כוללת את הרכיב Volume subspace composable, שמאפשר למקם ישויות של SceneCore, כמו מודלים תלת-ממדיים, ביחס לממשק המשתמש. מידע נוסף זמין במדריך למפתחים:

    • Subspace: אפשר למקם את ה-composable הזה בכל מקום בהיררכיית ממשק המשתמש של האפליקציה, וכך לשמור על פריסות של ממשק משתמש דו-ממדי ומרחבי בלי לאבד את ההקשר בין הקבצים. כך קל יותר לשתף דברים כמו ארכיטקטורת אפליקציה קיימת בין XR לבין גורמי צורה אחרים, בלי צורך להעלות את המצב דרך כל עץ ממשק המשתמש או לשנות את הארכיטקטורה של האפליקציה.

    • ‫SpatialPanel: פאנל מרחבי הוא רכיב קומפוזבילי של מרחב משנה שמאפשר להציג תוכן של אפליקציה – לדוגמה, אפשר להציג הפעלת וידאו, תמונות סטילס או כל תוכן אחר בפאנל מרחבי.

    • Orbiter: רכיב ממשק משתמש מרחבי. הוא מיועד לחיבור לחלונית מרחבית תואמת, ומכיל פריטי ניווט ופעולות לפי הקשר שקשורים לחלונית המרחבית הזו. לדוגמה, אם יצרתם חלונית מרחבית להצגת קטע וידאו, אתם יכולים להוסיף רכיבי UI להפעלה של סרטונים בתוך חלונית צפה.

    • נפח: הצבת ישויות SceneCore, כמו מודלים תלת-ממדיים, ביחס לממשק המשתמש.

  • פריסה מרחבית: אתם יכולים ליצור כמה חלוניות מרחביות ולמקם אותן בפריסה מרחבית באמצעות SpatialRow,‏ SpatialColumn,‏ SpatialBox ו-SpatialLayoutSpacer. אפשר להשתמש בSubspaceModifier כדי להתאים אישית את הפריסה.

  • רכיבים מרחביים של ממשק המשתמש: אפשר להשתמש ברכיבים האלה שוב בממשק המשתמש הדו-ממדי, והמאפיינים המרחביים שלהם יהיו גלויים רק כשהיכולות המרחביות מופעלות.

    • ‫SpatialDialog: החלונית תזוז מעט אחורה בעומק ציר ה-Z כדי להציג תיבת דו-שיח מוגבהת.
    • ‫SpatialPopUp: החלונית תזוז מעט אחורה בציר Z כדי להציג חלון קופץ מוגבה
    • ‫SpatialElevation: אפשר להגדיר את SpatialElevationLevel כדי להוסיף גובה.
  • ‫SpatialCapabilities: היכולות המרחביות יכולות להשתנות כשהמשתמשים מבצעים פעולות באפליקציה או במערכת, או אפילו על ידי האפליקציה עצמה – למשל, מעבר למרחב הבית או למרחב המלא. כדי למנוע בעיות, האפליקציה צריכה לבדוק את LocalSpatialCapabilities.current כדי לקבוע אילו ממשקי API נתמכים בסביבה הנוכחית. isSpatialUiEnabled: רכיבים מרחביים בממשק המשתמש (למשל SpatialPanel) isContent3dEnabled: אובייקטים תלת-ממדיים isAppEnvironmentEnabled: הסביבה isPassthroughControlEnabled: אם האפליקציה יכולה לשלוט במצב המעבר או לא isSpatialAudioEnabled: אודיו מרחבי

בעיות מוכרות

  • נכון לעכשיו, כדי להשתמש ב-Jetpack Compose ל-XR נדרשת גרסת minSDK של 30. כדי לעקוף את הבעיה, אפשר להוסיף את רשומת המניפסט הבאה <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 בחלונית שהוזזה באופן משמעותי, התוכן יידחף לכיוון הלא נכון.