Jetpack פיתוח נייטיב ל-XR
העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
12 בפברואר 2025 | - | - | - | 1.0.0-alpha02 |
הצהרת יחסי תלות
כדי להוסיף תלות ב-XR compose, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאגר Maven של Google.
מוסיפים את יחסי התלות של הארטיפקטים הנדרשים בקובץ build.gradle
של האפליקציה או המודול:
מגניב
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha01" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha01" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha01") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha01") }
מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ל-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במסמכי התיעוד של Issue Tracker.
גירסה 1.0
גרסה 1.0.0-alpha02
12 בפברואר 2025
androidx.xr.compose:compose:1.0.0-alpha02
ו-androidx.xr.compose:compose-testing:1.0.0-alpha02
משוחררים. הגרסה 1.0.0-alpha02 כוללת את ההוספות האלה.
תכונות חדשות
- עכשיו אפשר להקטין את התוכן של חלונית הפעילות כשמתבצעת שיחה במרחב המשותף.
- עכשיו אפשר להשתמש ב-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
כבר לא הם שיטות@Composable
, כך שאפשר להשתמש בהם בהקשרים שלא ניתן לשלב. - עדכון רמות הגובה המרחביות בהתאם למפרט העדכני ביותר של חוויית המשתמש.
- מטמיעים את הממשק
SubspaceSemanticsInfo
ב-MeasurableLayout
. - השם של
SubspaceModifierElement
השתנה ל-SubspaceModifierNodeElement
.
תיקוני באגים
- תיקונים לשיפור היציבות של ההזמנות ב-
SubspaceModifier
.SubspaceModifier
אמור לפעול בצורה מהימנה יותר. עכשיו אפשר להשתמש במודיפיקטור 'הזזה', 'סיבוב', 'שינוי קנה מידה', 'הזזה' ו'שינוי גודל' בכל סדר.
גרסה 1.0.0-alpha01
12 בדצמבר 2024
androidx.xr.compose:compose-*1.0.0-alpha01
משוחרר.
תכונות של הגרסה הראשונית
גרסה ראשונית למפתחים של Jetpack Compose ל-XR. אתם יכולים להשתמש במושגים מוכרים של Compose, כמו שורות ועמודות, כדי ליצור פריסות של ממשק משתמש מרחבי ב-XR, בין שאתם מעבירים אפליקציה קיימת ב-2D ל-XR ובין שאתם יוצרים אפליקציית XR חדשה מאפס. הספרייה הזו מספקת רכיבים שאפשר ליצור מהם מרחבים משניים ומרחבים תלת-ממדיים, כמו לוחות תלת-ממדיים ורכיבי 'מסלול', שמאפשרים למקם את ממשק המשתמש הקיים שלכם ב-Compose 2D או מבוסס-Views בפריסה תלת-ממדית. העדכון כולל את הרכיב Volume subspace composable, שמאפשר למקם ישויות של SceneCore, כמו מודלים תלת-ממדיים, ביחס לממשק המשתמש. מידע נוסף זמין במדריך למפתחים:
Subspace
: אפשר למקם את הרכיב הזה בכל מקום בהיררכיית ממשק המשתמש של האפליקציה, וכך לשמור על פריסות לממשק משתמש דו-ממדי ומרחבי בלי לאבד את ההקשר בין הקבצים. כך קל יותר לשתף דברים כמו ארכיטקטורת אפליקציה קיימת בין XR לבין גורמי צורה אחרים, בלי שתצטרכו להעביר את המצב דרך כל עץ ממשק המשתמש או לתכנן מחדש את הארכיטקטורה של האפליקציה.SpatialPanel: SpatialPanel הוא מרחבים משניים שניתן ליצור מהם רכיבים, ומאפשר להציג תוכן של אפליקציות. לדוגמה, אפשר להציג הפעלת סרטון, תמונות סטילס או כל תוכן אחר ב-SpatialPanel.
Orbiter: Orbiter הוא רכיב של ממשק משתמש מרחבי. הוא מיועד להתחבר ללוח מרחבי תואם, ומכיל פריטים של ניווט ופעולות לפי הקשר שקשורים ללוח המרחבי הזה. לדוגמה, אם יצרתם לוח מרחבי כדי להציג תוכן וידאו, תוכלו להוסיף לחצני בקרה על הפעלת הסרטון בתוך כלי ניווט.
נפח: מיקום של ישויות SceneCore, כמו מודלים תלת-ממדיים, ביחס לממשק המשתמש.
פריסה מרחבית: אפשר ליצור כמה לוחות מרחבים ולהציב אותם בפריסה מרחבית באמצעות
SpatialRow
,SpatialColumn
,SpatialBox
ו-SpatialLayoutSpacer
. משתמשים בסמליSubspaceModifier
כדי להתאים אישית את הפריסה.רכיבי ממשק משתמש מרחבי: אפשר לעשות שימוש חוזר ברכיבים האלה בממשק המשתמש הדו-מימדי, והמאפיינים המרחביים שלהם יהיו גלויים רק כשהיכולות המרחביות מופעלות.
SpatialDialog
: החלונית תזוז מעט לאחור ב-z-depth כדי להציג תיבת דו-שיח מוגבהת.SpatialPopUp
: החלונית תזוז מעט לאחור ב-z-depth כדי להציג חלון קופץ מוגבהSpatialElevation
: אפשר להגדיר אתSpatialElevationLevel
כך שיוסיף גובה.
SpatialCapabilities: יכולות המרחב יכולות להשתנות כאשר המשתמשים יוצרים אינטראקציה עם האפליקציה או המערכת, או אפילו על ידי האפליקציה עצמה – לדוגמה, מעבר למרחב הבית או למרחב המלא. כדי למנוע בעיות, האפליקציה צריכה לבדוק את
LocalSpatialCapabilities.current
כדי לקבוע אילו ממשקי API נתמכים בסביבה הנוכחית.isSpatialUiEnabled
: רכיבי ממשק משתמש מרחבי (למשל, SpatialPanel)isContent3dEnabled
: אובייקטים תלת-ממדייםisAppEnvironmentEnabled
: הסביבהisPassthroughControlEnabled
: האם האפליקציה יכולה לשלוט במצב העברה או לאisSpatialAudioEnabled
: אודיו מרחבי
בעיות מוכרות
- נכון לעכשיו, נדרש minSDK של 30 כדי להשתמש ב-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 בחלונית שנדחקה באופן משמעותי ידחוף את התוכן לכיוון הלא נכון.