Compose Compiler

שינוי של פונקציות @Composable והפעלת אופטימיזציות באמצעות פלאגין של Kotlin Compiler.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫7 באוגוסט 2024 1.5.15 - - -

מבנה

‫Compose הוא שילוב של 7 מזהי קבוצה ב-Maven בתוך androidx. כל קבוצה מכילה קבוצת משנה ממוקדת של פונקציות, ולכל אחת מהן יש קבוצה משלה של הערות על הגרסה.

בטבלה הזו מוסבר על הקבוצות ויש קישורים לכל קבוצה של הערות מוצר.

קבוצהתיאור
compose.animationליצור אנימציות באפליקציות Jetpack Compose כדי לשפר את חוויית המשתמש.
compose.compilerשינוי של פונקציות @Composable והפעלת אופטימיזציות באמצעות פלאגין של Kotlin Compiler.
compose.foundationכתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס כדי ליצור רכיבים משלכם למערכת העיצוב.
compose.materialאפשר ליצור ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה ביותר של Compose, והיא נועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io.
compose.material3אפשר ליצור ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design 3, הדור הבא של Material Design. ‫Material 3 כולל רכיבים ועיצובים מעודכנים, ותכונות התאמה אישית של Material You כמו צבע דינמי. הוא מתוכנן להיות עקבי עם הסגנון החזותי וממשק המשתמש החדשים של Android 12.
compose.runtimeאבני הבניין הבסיסיות של מודל התכנות וניהול המצב של Compose, וזמן הריצה המרכזי של פלאגין מהדר Compose לטירגוט.
compose.uiרכיבים בסיסיים של ממשק המשתמש של Compose שנדרשים לאינטראקציה עם המכשיר, כולל פריסה, ציור וקלט.

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

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

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

מגניב

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "19"
    }
}

Kotlin

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "19"
    }
}

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

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.

יצירת דיווח על בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.

גירסה 1.5

גרסה 1.5.15

‫7 באוגוסט 2024

androidx.compose.compiler:compiler:1.5.15 וגם androidx.compose.compiler:compiler-hosted:1.5.15 מופצים. גרסה 1.5.15 מכילה את השמירות האלה.

  • גרסת הקומפיילר הזו מיועדת ל-Kotlin 1.9.25.

גרסה 1.5.14

‫14 במאי 2024

androidx.compose.compiler:compiler:1.5.14 וגם androidx.compose.compiler:compiler-hosted:1.5.14 מופצים. גרסה 1.5.14 מכילה את השמירות האלה.

גרסת הקומפיילר הזו מיועדת ל-Kotlin 1.9.24.

תיקוני באגים

  • מוודאים שהגוף מוצג בשורה כשהמידע על המקור מושבת. (Idddb8)

גרסה 1.5.13

‫1 במאי 2024

androidx.compose.compiler:compiler:1.5.13 וגם androidx.compose.compiler:compiler-hosted:1.5.13 מופצים. גרסה 1.5.13 מכילה את השמירות האלה.

תכונות חדשות

  • התכונה 'דילוגים מתקדמים' כבר לא נחשבת ניסיונית, ואפשר להשתמש בה בבטחה בסביבת ייצור. היא תהפוך להתנהגות ברירת המחדל בגרסה עתידית. (I6c8c4)

תיקוני באגים

  • תיקון תאימות בינארית לפונקציות @Composable עם פרמטרים של מחלקת ערכים שיש להם ערך ברירת מחדל ועוטפים ערך לא פרימיטיבי. (I89465
  • תיקונים שהועברו מ-Compose Multiplatform ל-JS ול-Native compilation. פרטים מלאים מופיעים בטווח המחויבות שלמעלה.

גרסה 1.5.12

‫17 באפריל 2024

androidx.compose.compiler:compiler:1.5.12 וגם androidx.compose.compiler:compiler-hosted:1.5.12 מופצים. גרסה 1.5.12 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה שקשורה לקומפילציה מצטברת ב-Kotlin 1.9.23. (Ifca55)
  • תיקון סוגים שלא יכולים להיות null בפרמטרים של ערכים עבור מחלקות מוטבעות לא פרימיטיביות. (Ie6bb5)

גרסה 1.5.11

‫20 במרץ 2024

androidx.compose.compiler:compiler:1.5.11 וגם androidx.compose.compiler:compiler-hosted:1.5.11 מופצים. גרסה 1.5.11 מכילה את השמירות האלה.

Notes

  • החל מהגרסה הזו, הקומפיילר יקרא ל-startReplaceGroup במקום ל-startReplacableGroup כשמודול עובר קומפילציה עם זמן ריצה שמכיל את השיטה הזו. הפונקציה startReplaceGroup נוספה לסביבת זמן הריצה ב-Compose Runtime 1.7.0-alpha03. קריאות אל startRestartGroup נוצרות רק כשמטרגטים גרסאות 1.7.0-alpha03 ואילך של זמן הריצה.

  • הפעלת startReplaceGroup במקום startReplaceableGroup מאפשרת לסביבת זמן הריצה לזהות שינויים בצורה יעילה יותר, אבל עשויה להשפיע על הסדר שבו השינויים מזוהים על ידי Composer ונשלחים אל Applier. אם Applier מסתמך על הסדר שבו הפעולות האלה מזוהות, יכול להיות שיהיו שינויים קלים בהתנהגות שלו.

תכונות חדשות

  • תמיכה ב-Kotlin 1.9.23

תיקוני באגים

  • תיקון של סוגים גנריים חיצוניים מקוננים שמוסקים כלא יציבים. (I3437f, b/327643787)
  • תמיכה בכמה קובצי הגדרות יציבות. (I8db14, b/325326744)
  • הקומפיילר של Compose מתרגם עכשיו נכון פונקציות שהוגדרו מחדש על ידי מעבר רקורסיבי על מחלקות בסיס/הגדרות מחדש. (I2c9f9, b/316196500)
  • מוודאים שהפונקציה reference memoization לא מנסה לתעד הורים משתמעים של הצהרות מקומיות כשהן לא בשימוש ישיר. (Ib1267)
  • תיקון של יצירת קוד לביטוי למבדא (lambda) שניתן להרכבה עם crossinline (קשה להיתקל בבאג הזה בלי שהאפשרות nonSkippingGroupOptimization מופעלת). ‫(Icb2fd, ‏ b/325502738)

גרסה 1.5.10

‫21 בפברואר 2024

androidx.compose.compiler:compiler:1.5.10 וגם androidx.compose.compiler:compiler-hosted:1.5.10 מופצים. גרסה 1.5.10 מכילה את השמירות האלה.

תיקוני באגים

  • תמיכה בערכים מילוליים בשידור חי בתוך בלוקי init. (b/320397488)
  • משתמשים בפרמטר dispatcher כדי לבדוק אם הפונקציה נמצאת בתוך מחלקה מקומית (b/323123439)

גרסה 1.5.9

‫7 בפברואר 2024

androidx.compose.compiler:compiler:1.5.9 וגם androidx.compose.compiler:compiler-hosted:1.5.9 מופצים. גרסה 1.5.9 מכילה את השמירות האלה.

תיקוני באגים

  • תיקון קריאות של פונקציות שאפשר להרכיב במאתחל אובייקט אנונימי. (b/320261458, ‏ 96315c)
  • ספירת הצהרות מקומיות רקורסיביות כהצהרות שנתפסו. (b/318745941, e7b4b0)
  • תיקון התנהגות של שינויים ב-Intrinsic remember שקשורים להפניות לשיטות Java על ידי כפייה של ‎ .changed לסוגי פונקציות עם Intrinsic remember. (b/319810819, 77128e)
  • נוספה אופטימיזציה ניסיונית שתסיר את הקבוצות סביב פונקציות שלא ניתן לדלג עליהן, כמו פונקציות שמסומנות במפורש כ-@NonSkippableComposable ופונקציות שלא ניתן לדלג עליהן באופן מרומז, כמו פונקציות מוטבעות ופונקציות שמחזירות ערך שאינו Unit, כמו remember.
  • כדי להפעיל את האופטימיזציה הזו, מעבירים את אפשרות הפלאגין, -P plugin:androidx.compose.compiler.plugins.kotlin:nonSkippingGroupOptimization=true, לקומפיילר של Kotlin. (I1688f)

גרסה 1.5.8

‫10 בינואר 2024

androidx.compose.compiler:compiler:1.5.8 וגם androidx.compose.compiler:compiler-hosted:1.5.8 מופצים. גרסה 1.5.8 מכילה את השמירות האלה.

תכונות חדשות

  • תמיכה ב-Kotlin 1.9.22

תיקוני באגים

  • תיקון באג שבו קומפיילר Compose יצר חריגים כשנבנה באמצעות Java21. משתמשים שמשתמשים ב-Compose Compiler מ-Google Maven (כלומר, לא בונים אותו בעצמם) אף פעם לא הושפעו מהבאג הזה. (b/316644294)
  • תוקן באג שגרם לכך ששגיאה COMPOSABLE_EXPECTED דווחה לגבי חלק מהמתקשרים של פונקציות למדה שלא הוכנסו לשורה. (b/309364913)
  • הוספת שגיאת קומפילציה לפרמטרים שמוגדרים כברירת מחדל בפונקציות פתוחות (בעבר ההגבלה הזו הייתה רק בפונקציות מופשטות). בשלב הזה, Compose לא תומך בהחלפה של פרמטרים שמוגדרים כברירת מחדל מפונקציות שהוגדרו מחדש, והגדרה מחדש של פונקציה קומפוזבילית עם פרמטרים שמוגדרים כברירת מחדל נכשלה בזמן הריצה. אפשר להשתמש ב-@Suppress("ABSTRACT_COMPOSABLE_DEFAULT_PARAMETER_VALUE") כדי להשבית את הפונקציה, אבל חשוב לזכור שביטול של פונקציה כזו בלי לספק ערך ברירת מחדל לפרמטר יגרום לקריסה בזמן הריצה.(b/317490247)
  • תוקן באג ב-intrinsic remember שמנע את ההפצה של ערכים בצורה תקינה. (b/316327367)

External Contribution

  • תיקון שגיאת הקלדה במסמך. (aosp/288106)

גרסה 1.5.7

‫19 בדצמבר 2023

androidx.compose.compiler:compiler:1.5.7 וגם androidx.compose.compiler:compiler-hosted:1.5.7 מופצים. גרסה 1.5.7 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה קריסת זמן הריצה של Compose כשפרמטר המפתח remember() מפעיל פונקציה קומפוזבילית (b/315855015)
  • תוקנה קריסה בזמן ריצה של כתיבת הודעה כשמשתמשים ב-return@. (b/315821171)
  • מומלץ להימנע משימוש בנתיבים מוחלטים במפתחות של memoization כדי לשפר את ניצול מטמון הבנייה. (b/313937484)

גרסה 1.5.6

‫6 בדצמבר 2023

androidx.compose.compiler:compiler:1.5.6 וגם androidx.compose.compiler:compiler-hosted:1.5.6 מופצים. גרסה 1.5.6 מכילה את השמירות האלה.

תכונות חדשות

  • תמיכה ב-Kotlin 1.9.21

תיקוני באגים

  • הפעלת התכונה 'זכירה פנימית' – טרנספורמציה של הקומפיילר שמשבצת את הפונקציה remember בתוסף הקומפיילר של Compose ומחליפה השוואות של .equals בהשוואות של מספרים של מטא-נתוני הפרמטרים עבור פרמטרים יציבים. כך נעשה שימוש בפחות משבצות ופחות השוואות בזמן הריצה. אפשר להשבית את האפשרות הזו באמצעות ארגומנט של פלאגין קומפיילר: ‎-P plugin:androidx.compose.compiler.plugins.kotlin:intrinsicRemember=false. (If675f)
  • תיקון של זיכרון מטמון (memoization) של הפניות לפונקציות מותאמות וארגומנטים מוטבעים. (b/312738720)
  • הבנה של קבוצות כשיוצאים מקריאה לפונקציה מוטבעת (b/312242547)

External Contribution

  • תוקן קריסת זמן ריצה ב-k/native וב-k/wasm בגלל פקודת חזרה חסרה בפונקציות קומפוזביליות כשהיא ההצהרה האחרונה ומחזירה קבוע null ‏ (aosp/2835716)

גרסה 1.5.5

‫29 בנובמבר 2023

androidx.compose.compiler:compiler:1.5.5 וגם androidx.compose.compiler:compiler-hosted:1.5.5 מופצים. גרסה 1.5.5 מכילה את השמירות האלה.

תיקוני באגים

  • תוקן קראש במהלך חיפוש של סוגי קומפוזיציה שהוחלפו (Ib6d2c, ‏ b/297665426)
    • מוסיפים את stabilityConfigurationPath לפרמטרים מוכרים (בעבר הייתה בעיה שמנעה שימוש בדגל של קובץ ההגדרה). (b/309765121)
    • תיקונים של Memoization‏ (I081d1, ‏ I4d7bf)
    • תיקון של רה-קומפוזיציה על ידי התחשבות בערך דינמי לא ודאי ב-intrinsic remember ‏ (b/263402091)
    • תיקון מידע על שורות ניפוי באגים עבור תכונת הזיכרון המובנית (Ic8cf5)
    • תיקון קריסה (הורדת IR נכשלה) במהלך חיפוש של סוגים ניתנים להרכבה שהוחלפו בזמן ההידור (b/297665426)

External Contribution

  • שימוש ב-memoization להפניות יציבות לפונקציות עם ארגומנטים (I4d7bf, ‏ b/302680514)

גרסה 1.5.4

‫7 בנובמבר 2023

androidx.compose.compiler:compiler:1.5.4 וגם androidx.compose.compiler:compiler-hosted:1.5.4 מופצים. גרסה 1.5.4 מכילה את השמירות האלה.

עדכונים של יחסי תלות

  • ‫Compose Compiler תואם עכשיו ל-Kotlin 1.9.20

תכונות חדשות

  • הוספת אפשרות ניסיונית להפעלת מצב דילוג חזק. מצב דילוג חזק מאפשר דילוג על פונקציות composable עם פרמטרים לא יציבים. בנוסף, פונקציות למדה עם לכידות לא יציבות עוברות ממויזציה. התכונה הזו ניסיונית ולא מיועדת לשימוש בשידור חי אמיתי. (22421e)
  • מוסיפים דגל כדי להפעיל או להשבית את המידע על המקור או על העקבות. (4d45f09)
  • אפשר להגדיר את היציבות של כיתות חיצוניות באמצעות קובץ הגדרה. (If40eb)

תיקוני באגים

  • תיקון יציאה מוקדמת מפונקציות שאפשר להרכיב כשמידע המקור לא נאסף. (fe6267)
  • תיקון של המשך הפעילות מפונקציות שאפשר להרכיב. (948362)
  • תיקון של הרזולוציה כשמפעילים פונקציות שניתנות להגדרה מתוך הפעלת פונקציה שיש לה כמה עומסים שונים שתלויים בסוג ההחזרה של הביטוי. (2d36d0)
  • תיקון של memoization כשלהפניה לפונקציה אין מקבל שיגור. (fc2326)
  • תוקנה בעיה בבדיקת שינויים שגרמה לכך שלא בוצעה הרכבה מחדש של ביטויי למדה במצבים מסוימים. (db3699)
  • תיקון בעיות יציבות בהידור מצטבר של מודולים. (7d3e127)
  • הגבלת ההיקף של @DontMemoize לביטויי lambda בלבד. (7a7fa52)
  • תוקן באג שגרם לכך שהמשתנים לא נלכדו בצורה נכונה כשמשתמשים בממשק של פונקציה שניתנת להרכבה כפונקציית למדה. (5ae3556)

External Contribution

  • שימוש בסמל של שוויון מבני להשוואה מספרית ולהשוואה של ערך null‏ (c612a0)

גרסה 1.5.3

29 באוגוסט, 2023

הגרסאות androidx.compose.compiler:compiler:1.5.3,‏ androidx.compose.compiler:compiler-daemon:1.5.3 וגם androidx.compose.compiler:compiler-hosted:1.5.3 יוצאות. גרסה 1.5.3 מכילה את השמירות האלה.

עדכון תלות

  • גרסת Kotlin עודכנה ל-1.9.10

גרסה 1.5.2

‫23 באוגוסט 2023

הגרסאות androidx.compose.compiler:compiler:1.5.2,‏ androidx.compose.compiler:compiler-daemon:1.5.2 וגם androidx.compose.compiler:compiler-hosted:1.5.2 יוצאות. גרסה 1.5.2 מכילה את השמירות האלה.

תיקוני באגים

  • הוספת מספרי שורות להצהרות החזרה בפונקציות הניתנות להרכבה שמחזירות קבוע. (I42d89)
  • נפתרה בעיה של דליפת זיכרון שנגרמה כתוצאה ממעבר לנקודת הכניסה החדשה של תוסף הקומפיילר. (4f0a101)
  • הפסקת שינוי של ממשקי משתמש לא מורכבים ומהנים בקומפיילר של Compose. כתוצאה מכך, ממשקים פונקציונליים מטופלים באותו אופן כמו פונקציות למדא, כולל כללי מזכור. (28b3ce9)
  • משתמשים בסוג הארגומנט vararg כדי להסיק יציבות באתר הקריאה. (bc83645)

גירסה 1.5.1

26 ביולי 2023

הגרסאות androidx.compose.compiler:compiler:1.5.1,‏ androidx.compose.compiler:compiler-daemon:1.5.1 וגם androidx.compose.compiler:compiler-hosted:1.5.1 יוצאות. גרסה 1.5.1 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנו סמני אירועים של מעקב אחר קומפוזיציה בפונקציות @ReadOnlyComposable עם החזרות מוקדמות שגרמו להשחתת המעקב.

גרסה 1.5.0

‫18 ביולי 2023

הגרסאות androidx.compose.compiler:compiler:1.5.0,‏ androidx.compose.compiler:compiler-daemon:1.5.0 וגם androidx.compose.compiler:compiler-hosted:1.5.0 יוצאות. גרסה 1.5.0 מכילה את השמירות האלה.

תמיכה ניסיונית ב-K2

  • מהדר Compose 1.5.0 מספק תמיכה ניסיונית במהדר K2. חלק מהתכונות של Compose עדיין לא נתמכות ב-K2, אבל הן יתווספו בגרסאות עתידיות של הקומפיילר.

שינויים חשובים מאז גרסה 1.4.0

  • גרסת Kotlin עודכנה ל-1.9.0.
  • הוצאנו משימוש ארגומנטים עם שם לקריאות ל-lambda‏ @Composable. התכונה הזו מסתמכת על ממשקי API פנימיים של קומפיילר, ולא תהיה נתמכת על ידי K2.
  • נוסף כלי לאבחון כדי לאמת את ההערה @Composable בקריאות expect/actual. שתי ההצהרות צריכות לכלול הערות תואמות.

גרסה 1.4.8

גרסה 1.4.8

‫28 ביוני 2023

הגרסאות androidx.compose.compiler:compiler:1.4.8,‏ androidx.compose.compiler:compiler-daemon:1.4.8 וגם androidx.compose.compiler:compiler-hosted:1.4.8 יוצאות. גרסה 1.4.8 מכילה את השמירות האלה.

תכונות חדשות

  • גרסת Kotlin compiler לטירגוט עודכנה ל-1.8.22.

תיקוני באגים

  • שיפרנו את הודעת השגיאה לגבי @Composable overrides. עכשיו הוא מציין בצורה נכונה את חוסר ההתאמה של ההערות.
  • הצגת אזהרה לגבי הערות מיותרות של @Composable בפונקציות למבדא (lambda) מוטבעות שלא אמורות להיות מסומנות כקומפוזביליות. התכונה הזו לא תיתמך עם מהדר K2.

גרסה 1.4.7

גרסה 1.4.7

‫3 במאי 2023

הגרסאות androidx.compose.compiler:compiler:1.4.7,‏ androidx.compose.compiler:compiler-daemon:1.4.7 וגם androidx.compose.compiler:compiler-hosted:1.4.7 יוצאות. גרסה 1.4.7 מכילה את השמירות האלה.

תכונות חדשות

  • תמיכה ב-Kotlin 1.8.21
  • נוספו גרסאות פרימיטיביות של State API, שמאפשרות לעקוב אחרי ערכים מסוג Int,‏ Long,‏ Float ו-Double באובייקטים מסוג State בלי לקבל קנסות על המרה אוטומטית של טיפוסים פרימיטיביים לאובייקטים.

גרסה 1.4.6

גרסה 1.4.6

‫19 באפריל 2023

הגרסאות androidx.compose.compiler:compiler:1.4.6,‏ androidx.compose.compiler:compiler-daemon:1.4.6 וגם androidx.compose.compiler:compiler-hosted:1.4.6 יוצאות. גרסה 1.4.6 מכילה את השמירות האלה.

תיקוני באגים

  • הקומפיילר של Compose תלוי עכשיו ב-Java11 (במקום ב-Java17 שנדרש בגרסה 1.4.5 של הקומפיילר של Compose) כדי לתמוך טוב יותר במשתמשים שעדיין משתמשים בגרסאות ישנות יותר של Java.

גרסה 1.4.5

גרסה 1.4.5

‫12 באפריל 2023

הגרסאות androidx.compose.compiler:compiler:1.4.5,‏ androidx.compose.compiler:compiler-daemon:1.4.5 וגם androidx.compose.compiler:compiler-hosted:1.4.5 יוצאות. גרסה 1.4.5 מכילה את השמירות האלה.

הערה בגרסה הזו של Compose Compiler, סביבת build צריכה להשתמש ב-Java 17 ומעלה. על סמך משוב ממשתמשים, נחזיר את הדרישה הזו ל-Java 11 ונעדכן בגרסה נוספת (1.4.6) כדי לתמוך טוב יותר במשתמשים שמשתמשים בגרסאות ישנות יותר של Java.

תכונות חדשות

תמיכה ב-Kotlin 1.8.20

תיקוני באגים

  • העברת הדרישה של החלפת אופרטור הפעלה שניתן להרכבה למחלקות ולממשקים שמרחיבים ממשקי למדה עם הערות מתאימות.f8f2f78a1a769c2373201027f12700e772e4e97e
  • הוספנו את האפשרות להשתמש בהערה @Composable באופרטור getValue ולסמן את הפונקציה getter שנוצרה עבור delegate כפונקציה שאפשר להרכיב ב-IR, כדי לוודא שהיא תעבור טרנספורמציה נכונה בהמשך. f174f6ee60ca957d5cb6d19a5bd02a88267cdf40
  • תיקון שגיאת זמן ריצה פנימית של Compose (הייתה צפויה קריאה ל-applyChanges()) עבור פונקציות מוטבעות.b/274786923
  • מומלץ להימנע מתיעוד של ProcessCancelledException כי יש לו משמעות מיוחדת בסביבת הפיתוח המשולבת (IDE).b/274725600

External Contribution

גרסה 1.4.4

גרסה 1.4.4

‫22 במרץ 2023

הגרסאות androidx.compose.compiler:compiler:1.4.4,‏ androidx.compose.compiler:compiler-daemon:1.4.4 וגם androidx.compose.compiler:compiler-hosted:1.4.4 יוצאות. גרסה 1.4.4 מכילה את השמירות האלה.

תיקוני באגים

  • תיקון של החזרות lambda מוטמעות שניתנות להרכבה (72172b)
  • אפשר להגדיר שפונקציות קומפוזביליות יחזירו Nothing (לא תיווצר שגיאה כשמשתמשים ב-TODO בפונקציה קומפוזבילית) 3aea8d)

גרסה 1.4.3

גרסה 1.4.3

‫22 בפברואר 2023

androidx.compose.compiler:compiler:1.4.3 מופץ. גרסה 1.4.3 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנו קריאות מותנות לרכיבים קומפוזביליים בארגומנטים של קריאות לרכיבים קומפוזביליים (Ie93edb)

גרסה 1.4.2

גרסה 1.4.2

‫8 בפברואר 2023

androidx.compose.compiler:compiler:1.4.2 מופץ. גרסה 1.4.2 מכילה את השמירות האלה.

תכונות חדשות

  • תמיכה ב-Kotlin 1.8.10

תיקוני באגים

  • כדי להימנע מבאג שקשור לרה-קומפוזיציה, מוסיפים קבוצות בגוף של פונקציות למדא שלא ניתן לדלג עליהן.

גרסה 1.4.1

גרסה 1.4.1

‫8 בפברואר 2023

androidx.compose.compiler:compiler:1.4.1 מופץ. גרסה 1.4.1 מכילה את השמירות האלה.

תיקוני באגים

  • השבתנו את האופטימיזציה של זיכרון פנימי, שגרמה בעבר לכמה באגים ביצירת קוד.
  • השבתה של זכירה פנימית בפונקציות שמכילות פרמטר vararg.
  • תיקון דילוג שגוי על פונקציות Composable עם פרמטרים שמוגדרים כברירת מחדל
  • הוספת הודעת שגיאה חלופית למקרה שבו בדיקת התאימות ל-Kotlin נכשלת.
  • הסרת דילוג על יצירת קוד מ-lambda מוטבע

גרסה 1.4.0

‫17 בינואר 2023

androidx.compose.compiler:compiler:1.4.0 מופץ. גרסה 1.4.0 מכילה את השמירות האלה.

שינויים חשובים מאז גרסה 1.3.0

  • תמיכה ב-Kotlin 1.8.0
  • השבתת הזיכרון המובנה
  • למחלקת הנתונים של כלי ממשק המשתמש Group יש עכשיו שדה, isInline, שמציין אם הקבוצה מיועדת לקריאה לפונקציה קומפוזבילית מוכללת. אם isInline הוא true, אז ההפעלה היא של פונקציה קומפוזבילית מוטמעת. עם זאת, הערך עשוי להיות false עבור קריאות לפונקציות מוכללות שניתנות להרכבה, שמגיעות ממודולים שעברו קומפילציה באמצעות גרסה של תוסף הקומפילציה של Compose שלא יוצרת את פרטי הפונקציה המוכללת.
  • הגרסאות ImmutableCollection והגרסאות הקודמות שלהן נחשבות עכשיו יציבות.
  • פרמטר חדש ב-AnimatedContent לתווית של כלי
  • תוקנה יצירת קוד שגוי עבור lambda מוטבע

גרסה ‎1.4.0-alpha02

‫11 בנובמבר 2022

androidx.compose.compiler:compiler:1.4.0-alpha02 מופץ. גרסה ‎1.4.0-alpha02 מכילה את השמירות האלה.

תכונות חדשות

  • הוספנו תמיכה ב-Kotlin 1.7.21

גרסה ‎1.4.0-alpha01

‫9 בנובמבר 2022

androidx.compose.compiler:compiler:1.4.0-alpha01 מופץ. גרסה ‎1.4.0-alpha01 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה הבעיה שמונעת חזרה מוקדמת מפונקציות קומפוזביליות מוטבעות (b/255350755)
  • תיקון באג בהורדת פיתיון שגרם לבעיות בתמיכה ב-Kotlin/JS ב-Compose (6a40f8).

גרסה 1.3

גרסה 1.3.2

4 באוקטובר 2022

androidx.compose.compiler:compiler:1.3.2 מופץ. גרסה 1.3.2 מכילה את השמירות האלה.

תכונה חדשה

  • הגרסה הזו כוללת עדכון ל-Kotlin 1.7.20

גרסה 1.3.1

‫7 בספטמבר 2022

androidx.compose.compiler:compiler:1.3.1 מופץ. גרסה 1.3.1 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה IllegalStateException שגרמה לכך ש-Compose Compiler סימן בטעות סוגי יחידות כניתנים להרכבה בנסיבות מסוימות. (b/237863365)
  • המשתמשים צריכים עכשיו לציין את גרסת Kotlin המועדפת שלהם כשמשביתים את בדיקת גרסת הקומפיילר (I9e5e2)

גרסה 1.3.0

‫10 באוגוסט 2022

androidx.compose.compiler:compiler:1.3.0 מופץ. גרסה 1.3.0 מכילה את השמירות האלה.

גרסה ‎1.3.0-rc02

‫3 באוגוסט 2022

androidx.compose.compiler:compiler:1.3.0-rc02 מופץ. גרסה ‎1.3.0-rc02 מכילה את השמירות האלה.

גרסה ‎1.3.0-rc01

‫27 ביולי 2022

androidx.compose.compiler:compiler:1.3.0-rc01 מופץ. גרסה ‎1.3.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.3.0-beta01

‫20 ביולי 2022

androidx.compose.compiler:compiler:1.3.0-beta01 מופץ. גרסה ‎1.3.0-beta01 מכילה את השמירות האלה.

תכונות חדשות

  • הוספנו תמיכה ב-Kotlin 1.7.10

גרסה 1.2

גרסה 1.2.0

29 ביוני 2022

androidx.compose.compiler:compiler:1.2.0 מופץ. גרסה 1.2.0 מכילה את השמירות האלה.

שינויים חשובים מאז גרסה 1.1.0

גרסה ‎1.2.0-rc02

‫22 ביוני 2022

androidx.compose.compiler:compiler:1.2.0-rc02 מופץ. גרסה ‎1.2.0-rc02 מכילה את השמירות האלה.

תיקוני באגים

  • הוסר קוד ליצירת אירועי מעקב שאפשר להרכיב (aosp/2127922)

גרסה ‎1.2.0-rc01

‫15 ביוני 2022

androidx.compose.compiler:compiler:1.2.0-rc01 מופץ. גרסה ‎1.2.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.2.0-beta03

‫1 ביוני 2022

androidx.compose.compiler:compiler:1.2.0-beta03 מופץ. גרסה ‎1.2.0-beta03 מכילה את השמירות האלה.

גרסה ‎1.2.0-beta02

‫18 במאי 2022

androidx.compose.compiler:compiler:1.2.0-beta02 מופץ. גרסה ‎1.2.0-beta02 מכילה את השמירות האלה.

גרסה ‎1.2.0-beta01

‫11 במאי 2022

androidx.compose.compiler:compiler:1.2.0-beta01 מופץ. גרסה ‎1.2.0-beta01 מכילה את השמירות האלה.

  • זו גרסת הבטא הראשונה של 1.2! לא בוצעו שינויים מאז גרסת האלפא האחרונה.

תכונות חדשות

  • הוספנו תמיכה ב-Kotlin 1.6.21

גרסה ‎1.2.0-alpha08

‫20 באפריל 2022

androidx.compose.compiler:compiler:1.2.0-alpha08 מופץ. גרסה ‎1.2.0-alpha08 מכילה את השמירות האלה.

גרסה ‎1.2.0-alpha07

‫6 באפריל 2022

androidx.compose.compiler:compiler:1.2.0-alpha07 מופץ. גרסה ‎1.2.0-alpha07 מכילה את השמירות האלה.

גרסה ‎1.2.0-alpha06

‫23 במרץ 2022

androidx.compose.compiler:compiler:1.2.0-alpha06 מופץ. גרסה ‎1.2.0-alpha06 מכילה את השמירות האלה.

גרסה ‎1.2.0-alpha05

9 במרץ 2022

androidx.compose.compiler:compiler:1.2.0-alpha05 מופץ. גרסה ‎1.2.0-alpha05 מכילה את השמירות האלה.

גרסה ‎1.2.0-alpha04

23 בפברואר 2022

androidx.compose.compiler:compiler:1.2.0-alpha04 מופץ. גרסה ‎1.2.0-alpha04 מכילה את השמירות האלה.

גרסה ‎1.2.0-alpha03

‫9 בפברואר 2022

androidx.compose.compiler:compiler:1.2.0-alpha03 מופץ. גרסה ‎1.2.0-alpha03 מכילה את השמירות האלה.

גרסה ‎1.2.0-alpha02

‫26 בינואר 2022

androidx.compose.compiler:compiler:1.2.0-alpha02 מופץ. גרסה ‎1.2.0-alpha02 מכילה את השמירות האלה.

גרסה ‎1.2.0-alpha01

‫12 בינואר 2022

androidx.compose.compiler:compiler:1.2.0-alpha01 מופץ. גרסה ‎1.2.0-alpha01 מכילה את השמירות האלה.

תכונות חדשות

  • נוספה תמיכה ב-Kotlin 1.6.10.

גרסה 1.1

גרסה 1.1.1

23 בפברואר 2022

androidx.compose.compiler:compiler:1.1.1 מופץ. גרסה 1.1.1 מכילה את השמירות האלה.

תיקוני באגים

  • תיקון NullPointerException ב-androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059, ‏ b/206677462)
  • תוקנה קריסה שנגרמה בגלל תוכן בלוח בזמן קריאה מהלוח ב-Android. ‫(I06020, ‏ b/197769306)
  • תוקנה בעיה ב-RTL ב-LazyVerticalGrid (aosp/1931080, ‏ b/207510535)

גרסה 1.1.0

‫9 בפברואר 2022

androidx.compose.compiler:compiler:1.1.0 מופץ. גרסה 1.1.0 מכילה את השמירות האלה.

שינויים חשובים מאז גרסה 1.0.0

  • תמיכה יציבה באפקט הגלילה מעבר לקצה ב-Android 12
  • שיפורים בגודל של יעד מגע
  • שימו לב: ב-Compose 1.0, רכיבי Material ירחיבו את שטח הפריסה שלהם כדי לעמוד בהנחיות הנגישות של Material בנוגע לגודל יעד המגע. לדוגמה, יעד המגע של לחצן יתרחב לגודל מינימלי של 48x48dp, גם אם הגדרתם גודל קטן יותר ללחצן. ההתנהגות הזו של Compose Material זהה להתנהגות של רכיבי Material Design, כך שאם משלבים Views ו-Compose, ההתנהגות תהיה עקבית. השינוי הזה גם מבטיח שכשתשתמשו ברכיבי Compose Material כדי ליצור את ממשק המשתמש, תעמדו בדרישות המינימליות לנגישות של יעדי מגע.
  • תמיכה יציבה בפס ניווט
  • העברה של מספר ממשקי API שהיו ניסיוניים בעבר למצב יציב
  • תמיכה בגרסאות חדשות יותר של Kotlin

גרסה ‎1.1.0-rc03

‫26 בינואר 2022

androidx.compose.compiler:compiler:1.1.0-rc03 מופץ. גרסה ‎1.1.0-rc03 מכילה את השמירות האלה.

תיקוני באגים

  • עדכון לתמיכה ב-Compose Material 1.1.0-rc03

גרסה ‎1.1.0-rc02

‫16 בדצמבר 2021

androidx.compose.compiler:compiler:1.1.0-rc02 מופץ. גרסה ‎1.1.0-rc02 מכילה את השמירות האלה.

עדכונים של תלות

  • ‫Compose Compiler 1.1.0-rc02 תואם ל-Kotlin 1.6.10.

גרסה ‎1.1.0-rc01

15 בדצמבר 2021

androidx.compose.compiler:compiler:1.1.0-rc01 מופץ. גרסה ‎1.1.0-rc01 מכילה את השמירות האלה.

שינויים בתלות

  • ‫Compose Compiler 1.1.0-rc01 תואם ל-Kotlin 1.6.0.
  • גרסת build תואמת של 1.6.10 זמינה דרך תמונות מצב (SNAPSHOTs) של androidx.dev עם buildId 8003490. קטע הקוד הבא של התלות יגדיר SNAPSHOTs עבור מהדר Compose:

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

    buildscript {
        repositories {
            google()
            jcenter()
            maven { url 'https://androidx.dev/snapshots/builds/8003490/artifacts/repository' }
        }
    }
    

    מוסיפים את קטע הקוד הבא לקובץ build.gradle של האפליקציה או המודול שמשתמשים ב-Compose:

    android {
        composeOptions {
            kotlinCompilerExtensionVersion = "1.2.0-SNAPSHOT"
        }
    }
    

גרסה ‎1.1.0-beta04

1 בדצמבר 2021

androidx.compose.compiler:compiler:1.1.0-beta04 מופץ. גרסה ‎1.1.0-beta04 מכילה את השמירות האלה.

תכונות חדשות

  • העדכון בוצע כדי שתהיה תאימות ל-Kotlin 1.6.0

גרסה ‎1.1.0-beta03

17 בנובמבר 2021

androidx.compose.compiler:compiler:1.1.0-beta03 מופץ. גרסה ‎1.1.0-beta03 מכילה את השמירות האלה.

גרסה ‎1.1.0-beta02

‫3 בנובמבר 2021

androidx.compose.compiler:compiler:1.1.0-beta02 מופץ. גרסה ‎1.1.0-beta02 מכילה את השמירות האלה.

גרסה ‎1.1.0-beta01

‫27 באוקטובר 2021

androidx.compose.compiler:compiler:1.1.0-beta01 מופץ. גרסה ‎1.1.0-beta01 מכילה את השמירות האלה.

גרסה ‎1.1.0-alpha06

‫13 באוקטובר 2021

androidx.compose.compiler:compiler:1.1.0-alpha06 מופץ. גרסה ‎1.1.0-alpha06 מכילה את השמירות האלה.

גרסה ‎1.1.0-alpha05

‫29 בספטמבר 2021

androidx.compose.compiler:compiler:1.1.0-alpha05 מופץ. גרסה ‎1.1.0-alpha05 מכילה את השמירות האלה.

גרסה ‎1.1.0-alpha04

‫15 בספטמבר 2021

androidx.compose.compiler:compiler:1.1.0-alpha04 מופץ. גרסה ‎1.1.0-alpha04 מכילה את השמירות האלה.

גרסה ‎1.1.0-alpha03

‫1 בספטמבר 2021

androidx.compose.compiler:compiler:1.1.0-alpha03 מופץ. גרסה ‎1.1.0-alpha03 מכילה את השמירות האלה.

תכונות חדשות

  • הקומפיילר של Compose תומך עכשיו בגרסאות ישנות יותר של Compose Runtime ‏ (1.0). לפני השינוי הזה, מהדר Compose היה תואם רק ל-Compose Runtime מאותה גרסה או מגרסה מאוחרת יותר. אחרי השינוי הזה, מהדר Compose תואם לגרסה ישנה יותר של Compose Runtime‏ (1.0). (aosp/1796968)
  • ‫Compose 1.1.0-alpha03 עודכן כך שיסתמך על Kotlin 1.5.30. (I74545)

גרסה ‎1.1.0-alpha02

‫18 באוגוסט 2021

androidx.compose.compiler:compiler:1.1.0-alpha02 מופץ. גרסה ‎1.1.0-alpha02 מכילה את השמירות האלה.

גרסה ‎1.1.0-alpha01

‫4 באוגוסט 2021

androidx.compose.compiler:compiler:1.1.0-alpha01 מופץ. גרסה ‎1.1.0-alpha01 מכילה את השמירות האלה.

גירסה 1.0

גרסה 1.0.5

‫3 בנובמבר 2021

androidx.compose.compiler:compiler:1.0.5 מופץ. גרסה 1.0.5 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה קריסה במעקב אחר מופעים של derivedStateOf. (aosp/1792247)

גרסה 1.0.4

‫13 באוקטובר 2021

androidx.compose.compiler:compiler:1.0.4 מופץ. גרסה 1.0.4 מכילה את השמירות האלה.

עדכונים של יחסי תלות

  • העדכון בוצע כדי להסתמך על Kotlin 1.5.31

גרסה 1.0.3

‫29 בספטמבר 2021

androidx.compose.compiler:compiler:1.0.3 מופץ. גרסה 1.0.3 מכילה את השמירות האלה.

עדכונים של יחסי תלות

  • העדכון בוצע כדי להסתמך על Kotlin 1.5.30

גרסה 1.0.2

‫1 בספטמבר 2021

androidx.compose.compiler:compiler:1.0.2 מופץ. גרסה 1.0.2 מכילה את השמירות האלה.

העדכון תומך בגרסת Compose 1.0.2. ‫Compose 1.0.2 עדיין תואם ל-Kotlin 1.5.21.

גרסה 1.0.1

‫4 באוגוסט 2021

androidx.compose.compiler:compiler:1.0.1 מופץ. גרסה 1.0.1 מכילה את השמירות האלה.

עדכונים של יחסי תלות

  • העדכון כולל תלות ב-Kotlin 1.5.21.

גרסה 1.0.0

28 ביולי 2021

androidx.compose.compiler:compiler:1.0.0 מופץ. גרסה 1.0.0 מכילה את השמירות האלה.

התכונות העיקריות בגרסה 1.0.0

זו הגרסה היציבה הראשונה של Compose. פרטים נוספים זמינים בבלוג הרשמי של Compose.

גרסה ‎1.0.0-rc02

‫14 ביולי 2021

androidx.compose.compiler:compiler:1.0.0-rc02 מופץ. גרסה ‎1.0.0-rc02 מכילה את השמירות האלה.

גרסה ‎1.0.0-rc01

‫1 ביולי 2021

androidx.compose.compiler:compiler:1.0.0-rc01 מופץ. גרסה ‎1.0.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.0.0-beta09

‫16 ביוני 2021

androidx.compose.compiler:compiler:1.0.0-beta09 מופץ. גרסה ‎1.0.0-beta09 מכילה את השמירות האלה.

גרסה ‎1.0.0-beta08

‫2 ביוני 2021

androidx.compose.compiler:compiler:1.0.0-beta08 מופץ. גרסה ‎1.0.0-beta08 מכילה את השמירות האלה.

גרסה ‎1.0.0-beta07

‫18 במאי 2021

androidx.compose.compiler:compiler:1.0.0-beta07 מופץ. גרסה ‎1.0.0-beta07 מכילה את השמירות האלה.

גרסה ‎1.0.0-beta06

‫5 במאי 2021

androidx.compose.compiler:compiler:1.0.0-beta06 מופץ. גרסה ‎1.0.0-beta06 מכילה את השמירות האלה.

גרסה ‎1.0.0-beta05

21 באפריל 2021

androidx.compose.compiler:compiler:1.0.0-beta05 מופץ. גרסה ‎1.0.0-beta05 מכילה את השמירות האלה.

גרסה ‎1.0.0-beta04

‫7 באפריל 2021

androidx.compose.compiler:compiler:1.0.0-beta04 מופץ. גרסה ‎1.0.0-beta04 מכילה את השמירות האלה.

גרסה ‎1.0.0-beta03

‫24 במרץ 2021

androidx.compose.compiler:compiler:1.0.0-beta03 מופץ. גרסה ‎1.0.0-beta03 מכילה את השמירות האלה.

גרסה ‎1.0.0-beta02

10 במרץ 2021

androidx.compose.compiler:compiler:1.0.0-beta02 מופץ. גרסה ‎1.0.0-beta02 מכילה את השמירות האלה.

גרסה ‎1.0.0-beta01

24 בפברואר 2021

androidx.compose.compiler:compiler:1.0.0-beta01 מופץ. גרסה ‎1.0.0-beta01 מכילה את השמירות האלה.

זו הגרסה הראשונה של Compose 1.0.0 Beta.

גרסה ‎1.0.0-alpha12

‫10 בפברואר 2021

androidx.compose.compiler:compiler:1.0.0-alpha12 מופץ. גרסה ‎1.0.0-alpha12 מכילה את השמירות האלה.

גרסה ‎1.0.0-alpha11

‫28 בינואר 2021

androidx.compose.compiler:compiler:1.0.0-alpha11 מופץ. גרסה ‎1.0.0-alpha11 מכילה את השמירות האלה.

גרסה ‎1.0.0-alpha10

‫13 בינואר 2021

androidx.compose.compiler:compiler:1.0.0-alpha10 מופץ. גרסה ‎1.0.0-alpha10 מכילה את השמירות האלה.

גרסה ‎1.0.0-alpha09

‫16 בדצמבר 2020

androidx.compose.compiler:compiler:1.0.0-alpha09 מופץ. גרסה ‎1.0.0-alpha09 מכילה את השמירות האלה.

גרסה ‎1.0.0-alpha08

‫2 בדצמבר 2020

androidx.compose.compiler:compiler:1.0.0-alpha08 מופץ. גרסה ‎1.0.0-alpha08 מכילה את השמירות האלה.

גרסה ‎1.0.0-alpha07

11 בנובמבר 2020

androidx.compose.compiler:compiler:1.0.0-alpha07 מופץ. גרסה ‎1.0.0-alpha07 מכילה את השמירות האלה.

תכונות חדשות

  • הסקת מסקנות לגבי יציבות והפצה. הפלאגין של מהדר Compose ינתח את הסוגים שהוא מהדר כדי להסיק אם הם עומדים בדרישות לאופטימיזציות מסוימות בזמן הריצה. התוצאה המשוערת הזו מסונתזת כמטא-נתונים בכיתה, כדי שהקומפיילר יוכל להשתמש בה במודולים אחרים. בנוסף, התוצאה של ההסקות האלה בזמן הריצה מועברת במטא-נתונים שמועברים לקריאות שניתנות להרכבה במהלך ההרכבה. לכן נדרש פרוטוקול מטא-נתונים שונה לפונקציות שאפשר להרכיב, מה שאומר שפונקציות שאפשר להרכיב שקומפלו באמצעות מהדר alpha07 לא יהיו תואמות בינארית לפונקציות שאפשר להרכיב שקומפלו באמצעות גרסה קודמת כלשהי של מהדר. (aosp/1431988)

גרסה ‎1.0.0-alpha06

28 באוקטובר 2020

androidx.compose.compiler:compiler:1.0.0-alpha06 מופץ. גרסה ‎1.0.0-alpha06 מכילה את השמירות האלה.

גרסה ‎1.0.0-alpha05

‫14 באוקטובר 2020

androidx.compose.compiler:compiler:1.0.0-alpha05 מופץ. גרסה ‎1.0.0-alpha05 מכילה את השמירות האלה.

גרסה ‎1.0.0-alpha04

‫1 באוקטובר 2020

androidx.compose.compiler:compiler:1.0.0-alpha04 מופץ. גרסה ‎1.0.0-alpha04 מכילה את השמירות האלה.

בוצע refactoring של androidx.compose:compose-compiler ל-androidx.compose.compiler:compiler. זו הגרסה הראשונה בקבוצה החדשה.