Compose Compiler

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

מבנה

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

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

קיבוץתיאור
compose.animationפיתוח אנימציות באפליקציות שלהם ב-Jetpack Compose כדי להעשיר את חוויית המשתמש.
compose.compilerשינוי פונקציות עם @Composable והפעלת אופטימיזציות באמצעות פלאגין של קומפילר Kotlin.
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 Compiler.
compose.uiרכיבים בסיסיים של ממשק המשתמש של Compose שנדרשים כדי לקיים אינטראקציה עם המכשיר, כולל פריסה, ציור והזנה.

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

כדי להוסיף תלות ב-Compose, צריך להוסיף את מאגר Google Maven לפרויקט. למידע נוסף, אפשר לקרוא את המאמר מאגר 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 למספר פלטפורמות ששודרגו ל-upstream עבור הידור של JS ושל קוד מקורי. פרטים מלאים זמינים בטווח ההתחייבות שלמעלה.

גרסה 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)
  • תיקון סוגי נתונים שלא ניתנים לאפסה בפרמטרים של ערכים עבור כיתות מוטמעות שאינן פרימיטיביות. (Ie6bb5)

גרסה 1.5.11

‫20 במרץ 2024

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

הערות

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

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

תכונות חדשות

  • תמיכה ב-Kotlin 1.9.23

תיקוני באגים

  • תיקון של סוגי גנריקה חיצוניים בתצוגת עץ שמשויכו ל-Unstable. (I3437f, ‏ b/327643787)
  • תמיכה בכמה קובצי תצורה של יציבות. (I8db14, ‏ b/325326744)
  • Compose Compiler מעביר עכשיו בצורה נכונה פונקציות שהוגדרו מחדש על ידי סריקה רפלקטיבית של הכיתות הבסיסיות או של ההגדרות מחדש. (I2c9f9, ‏ b/316196500)
  • חשוב לוודא שהטמעת המידע של הפונקציה לא מנסה לתעד הורים מרומזים של הצהרות מקומיות כשלא נעשה בהן שימוש ישיר. (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)
  • שימוש בפרמטר של מפנה כדי לבדוק אם הפונקציה נמצאת בתוך הכיתה המקומית (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)
  • ספירת הצהרות מקומיות רפליקטיביות כ-captures. (b/318745941, ‏ e7b4b0)
  • תיקון של התנהגות השינויים של 'זיכרון מובנה' שקשורה להפניות לשיטות Java, על ידי אילוץ של '.changed' עבור סוגי פונקציות עם 'זיכרון מובנה'. (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

תיקוני באגים

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

תרומה חיצונית

  • תיקון שגיאת הקלדה במסמך העזרה. (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)
  • תיקון קריסה בסביבת זמן הריצה של Compose כשמשתמשים ב-return@. (b/315821171)
  • מומלץ להימנע משימוש בנתיבים מוחלטים במפתחות של שימור בזיכרון, כדי לשפר את ניצול המטמון של ה-build. (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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תכונות חדשות

  • תמיכה ב-Kotlin 1.9.21

תיקוני באגים

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

תרומה חיצונית

  • תיקון קריסה בסביבת זמן הריצה של k/native ו-k/wasm עקב חסרה הצהרת return בפונקציות Composable כשהיא ההצהרה האחרונה ומחזירה null const (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)
    • תיקון של הרכבה מחדש על ידי התייחסות למצב של פרמטר לא בטוח בזיכרון הפנימי (b/263402091)
    • תיקון פרטי השורה של ניפוי הבאגים לזיכרון מהותי (Ic8cf5)
    • תיקון קריסה (IR lowering failed) במהלך חיפוש של סוגי composable ששונו בזמן הידור (b/297665426)

תרומה חיצונית

  • שמירת ערך של הפניות לפונקציות יציבות עם ארגומנטים (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

תכונות חדשות

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

תיקוני באגים

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

תרומה חיצונית

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

תיקוני באגים

  • הוספת מספרי שורות להצהרות return בפונקציות מורכבות שמחזירות ערך קבוע. (I42d89)
  • תיקון של דליפת זיכרון שנגרמה כתוצאה ממעבר לנקודת הכניסה החדשה של הפלאגין של המהדר. (4f0a101)
  • הפסקת הטרנספורמציה של ממשקי fun לא ניתנים ליצירה ב-Compose compiler. לכן, הממשקים האלה מטופלים באותו אופן כמו פונקציות lambda, כולל כללי שמירת מידע בזיכרון. (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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • תוקנו סמנים של אירועי מעקב אחר הרכבה בפונקציות @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 compiler 1.5.0 יש תמיכה ניסיונית ב-K2 compiler. חלק מהתכונות של Compose עדיין לא נתמכות ב-K2, והן יתווספו בגרסאות העתידיות של המהדר.

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

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

גרסה 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 השתנתה ל-1.8.22.

תיקוני באגים

  • הודעת שגיאה משופרת עבור שינויים @Composable. עכשיו המערכת מציינת נכון אי-התאמה של הערות.
  • אזהרה על הערה @Composable מיותרת ב-inline lambdas שלא צריך לסמן כ-composable. התכונה הזו לא תהיה נתמכת במהדר 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 Compiler תלוי עכשיו ב-Java11 (במקום ב-Java17 שנדרשת ב-Compose Compiler בגרסה 1.4.5), כדי לספק תמיכה טובה יותר למשתמשים שעדיין משתמשים בגרסאות ישנות יותר של 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 כוללת את ההצהרות האלה על ביצוע שינויים (commits).

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

תכונות חדשות

תמיכה ב-Kotlin 1.8.20

תיקוני באגים

  • הדרישה להחליף את אופרטור ההפעלה הניתן ליצירה (composable) מועברת לכיתות ולממשקים שמרחיבים ממשקי lambda באמצעות הערות תואמות.f8f2f78a1a769c2373201027f12700e772e4e97e
  • מאפשר שימוש בהערה @Composable באופרטור getValue ומסמן את ה-getter שנוצר עבור הנציג כרכיב שאפשר ליצור ממנו קובץ IR, כדי לוודא שהוא יתבצע בצורה נכונה בשלב מאוחר יותר. f174f6ee60ca957d5cb6d19a5bd02a88267cdf40
  • תיקון שגיאה פנימית בסביבת זמן הריצה של compose‏ (Expected applyChanges() to have been called) לפונקציות בשורה.b/274786923
  • מומלץ להימנע מהקלטת ProcessCancelledException כי יש לו משמעות מיוחדת בסביבת הפיתוח המשולבת.b/274725600

תרומה חיצונית

גרסה 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 בתוך שורות (Composable inline 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

תיקוני באגים

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

גרסה 1.4.1

גרסה 1.4.1

8 בפברואר 2023

androidx.compose.compiler:compiler:1.4.1 משוחרר. גרסה 1.4.1 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • השבתת האופטימיזציה של 'זיכרון מובנה', שגרמה בעבר לכמה באגים ביצירת קוד.
  • משביתים את התכונה 'זיכרון פנימי' בפונקציות שמכילות פרמטר vararg.
  • תיקון של דילוג שגוי ברכיבים מורכבים עם פרמטרים שמוגדרים כברירת מחדל
  • הוספת הודעת שגיאה למקרה של כישלון בבדיקת התאימות ל-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 של נתוני ui tooling יש עכשיו שדה, isInline, שמציין אם הקבוצה מיועדת לקריאה לפונקציה שניתנת ליצירה בתוך שורה. אם הערך של isInline הוא true, הקריאה היא לפונקציה מורכבת בתוך שורה. עם זאת, הערך עשוי להיות false בקריאות לפונקציות שניתנות לקישור בקוד ממודולים שעבר הידור בגרסה של הפלאגין של ה-Compose Compiler שלא יוצרת את פרטי הפונקציה בקוד.
  • ImmutableCollection והאחים והאחיות שלהם עם סטטוס Persistent נחשבים עכשיו ליציבים.
  • פרמטר חדש ב-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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • תיקון היכולת לחזור מוקדם מפונקציות מורכבות בשורה (inline) (b/255350755)
  • תיקון באג ב-decoy lowering שגרם לשבירה של התמיכה ב-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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • תיקון 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
  • שיפורים בגודל של משטח המגע
  • שימו לב שבגרסה 1.0 של Compose, רכיבי Material ירחיבו את שטח הפריסה שלהם כדי לעמוד בהנחיות הנגישות של Material לגבי גודל יעד המגע. לדוגמה, יעד המגע של הלחצן יתרחב לגודל מינימלי של 48x48dp, גם אם תגדירו את הגודל של הלחצן לגודל קטן יותר. כך Compose Material תואם לאותו התנהגות של רכיבי Material Design, ומספק התנהגות עקבית אם משלבים בין Views לבין Compose. השינוי הזה גם מבטיח שכשיוצרים את ממשק המשתמש באמצעות רכיבי Material של Compose, מתקיימים הדרישות המינימליות לנגישות של יעדי מגע.
  • תמיכה יציבה בפס ניווט
  • מספר ממשקי 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.
  • גרסה תואמת של 1.6.10 זמינה באמצעות קובצי snapshot של androidx.dev עם buildId 8003490. קטע הקוד הבא של יחסי התלות יקבע קובצי SNAPSHOT ל-Compose Compiler:

    מוסיפים את קטע הקוד הבא לקובץ 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 Compiler תומך עכשיו בגרסאות ישנות יותר של Compose Runtime‏ (1.0). לפני השינוי הזה, ה-Compose Compiler היה תואם רק ל-Compose Runtime מאותה גרסה ואילך. אחרי השינוי הזה, ה-Compose Compiler תואם לגרסה ישנה יותר של 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

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

גרסה 1.0.4

13 באוקטובר 2021

androidx.compose.compiler:compiler:1.0.4 משוחרר. גרסה 1.0.4 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

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

  • העדכון נעשה כך שיהיה תלוי ב-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 כוללת את השמירות האלה.

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

גרסה 1.0.1

4 באוגוסט 2021

androidx.compose.compiler:compiler:1.0.1 משוחרר. גרסה 1.0.1 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

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

  • העדכון נעשה כך שיהיה תלוי ב-Kotlin 1.5.21.

גרסה 1.0.0

28 ביולי 2021

androidx.compose.compiler:compiler:1.0.0 משוחרר. גרסה 1.0.0 כוללת את ההצהרות האלה.

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

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

גרסה 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תכונות חדשות

  • השלמה והפצה של יציבות. הפלאגין של Compose Compiler ינתח את הסוגים שהוא מקמפל כדי להסיק אם הוא עומד בדרישות לאופטימיזציות מסוימות בסביבת זמן הריצה. לאחר מכן, התוצאה המשוערת הזו מתווספת לכיתה כמטא-נתונים, כדי שהמְהַדר יוכל להשתמש בה במודולים אחרים. בנוסף, תוצאת זמן הריצה של ההסקות האלה מועברת במטא-נתונים שמועברים לשיחות הניתנות ליצירה במהלך היצירה. לכן נדרשה שימוש בפרוטוקול מטא-נתונים שונה לפונקציות הניתנות לקיפול. כלומר, פונקציות הניתנות לקיפול שעברן הידור באמצעות המהדרר 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

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