היום אנחנו מציינים באופן רשמי חמש שנים מאז ההשקה של Jetpack Compose 1.0. מאז גרסה 1.0, שהשקתה הוכרזה ב-28 ביולי 2021, ועד לגרסה 1.11 האחרונה, חלו שינויים משמעותיים בממשקי ה-API לאורך השנים, ואנחנו רוצים לעצור לרגע ולחגוג את זה.
כשפרסמנו באופן רשמי את גרסה 1.0, הבטחנו דרך פשוטה, מהירה ואינטואיטיבית יותר ליצירת ממשקי משתמש מקוריים ב-Android. במבט לאחור, אפשר לומר בבטחה ש-Compose לא רק עמדה בהבטחה הזו, אלא גם שינתה לחלוטין את הסביבה העסקית של Android. יותר מ-68% מ-1,000 האפליקציות המובילות משתמשות בה היום בסביבת הייצור.
היסטוריה
בחמש השנים האחרונות, השימוש בתכונה 'יצירת תוכן' גדל בהתמדה. בתחילת הדרך, הסברנו איך לבנות פריסות באמצעות הרכיבים הבסיסיים Box, Row ו-Column. היום הרחבנו את Compose כך שתפעל לא רק במכשירים ניידים, אלא גם בגורמי צורה אחרים, כמו Compose לטלוויזיה, WearOS, Glance for Widgets, ואפילו במשקפיים עם Jetpack Compose Glimmer.
הקלטנו פרק של Android Developers Backstage עם קלרה באיירי (Clara Bayarri), מנהלת הנדסה ב-Jetpack, ושני מנהלים לשעבר בצוות, רומן גאי (Romain Guy) וצ'ט האס (Chet Haase), יחד עם טור נורביי (Tor Norbye), מנהל הנדסה בכיר. בפרק הזה הם דנים בהיסטוריה של Compose ובימים הראשונים של הפיתוח.
מבט לאחור
הגרסה הראשונה של התכונה 'יצירה בעזרת AI' הייתה שונה מאוד מהגרסה שאתם מכירים היום. שני פרויקטים התנהלו במקביל בצוות Android.
באותו זמן, הצוות של Views toolkit חשב על ביטול החבילה של UI Toolkit והפיכתה לספרייה, כדי לשפר את מהירות הפיתוח ולאפשר למפתחים לאמץ את הכלי ולשלוט בעדכונים שלו בקלות רבה יותר. בינתיים, צוות עבד על רעיון חדשני ליצירת פריסות הצהרתיות על ידי הטמעת XML בתוך Kotlin, והתוצאה נראתה בערך כך:
שני המאמצים האלה התמזגו כדי ליצור את מה שאתם מכירים היום – ערכת כלים מלאה להצהרת ממשק משתמש, שמנצלת את היכולות של תוסף קומפיילר, זמן ריצה ו-Kotlin:
@Composable fun Newsfeed(stories: List<Story>) { LazyColumn { items(stories) { story -> Card { val author = story.author Image(painterResource(author.profilePhoto), contentDescription = author.name) Text(author.name) Text(story.content) if (story.hasCommentsEnabled()) { for(comment in story.comments) { Text(comment.mainContent) } } } } } }
ואתם, הקהילה, עזרתם לנו בשלב מוקדם מאוד! לפני 2021, הייתה ל-Compose שלב טרום-אלפא, שעזר לנו לוודא ש-Compose מתאים לפתרון הבעיות של המפתחים שלנו.
אחד מהזיכרונות האהובים עלינו הוא Android Dev Challenge. אתגרנו את הקהילה ליצור ארבע משימות שונות באמצעות Compose, והפידים שלנו התמלאו באפליקציות של גורים, שעונים ואפליקציות מזג אוויר. קיבלנו המון משוב ישיר שעזר לנו לעצב את גרסה 1.0.
הפלטפורמה Compose המשיכה להתפתח, מהשקה עם קבוצה של רכיבי Material 2 ועד לתמיכה ב-Material 3 Expressive.
במבט קדימה
היום, Compose 1.11 היא הגרסה האחרונה, וגרסה 1.12 תושק בקרוב. הגרסאות האלה מציעות הרבה יותר מגרסה 1.0, שהושקה לפני 5 שנים. השנה השקנו ממשקי API יותר גמישים, כמו FlexBox, Grid, MediaQuery ו-Styles. ממשקי ה-API האלה מאפשרים לכם להתקדם לשלב הבא בפיתוח ממשקי משתמש פרימיום דינמיים באמצעות Compose.
בכנס Google I/O 2026 הודענו שאנחנו עוברים לגישה של Compose-first, כלומר כל פיתוח עתידי של ממשק המשתמש יתבצע רק ב-Compose, ואילו ערכת הכלים Views תעבור למצב תחזוקה. בנוסף, Material Design עובר באופן מלא אל Compose, מה שמסמן את סוף findViewById era.
הקהילה היא הלב של Compose
במהלך השנים קיבלנו מכם דוגמאות יצירתיות לשימוש בתכונה 'כתיבה בעזרת AI', ונשמח להציג עוד כמה דוגמאות לשימוש מעניין בתכונה. Jetbrains היא שותפה נהדרת של Google בפיתוח Compose. היא הרחיבה את השימוש ב-Compose כך שיפעל בפלטפורמות שונות באמצעות Compose Multiplatform, ומאפשרת למפתחים של אפליקציות למחשבים, ל-iOS ולאינטרנט ליהנות גם הם מהיתרונות של Compose.
נהנינו מאוד לקרוא את הניוזלטרים האהובים עלינו, מ-JetpackCompose.app’s Dispatch, AndroidWeekly ועד jetc, שעוזרים למפתחי Android להתעדכן בחידושים בעולם של Compose ו-Android.
תורם בולט נוסף הוא sinasamaki. הם יצרו הרבה חוויות מהנות באמצעות התכונה 'יצירה', כמו האפקט המהנה של שינוי הסרט והאפקט של תקלה:
Saket Narayan תמיד היה מקור השראה בכל מה שקשור ליצירת כלים שימושיים ל-Compose, כמו telephoto, ספרייה עם תמיכה במחוות של הזזה ושינוי גודל, ודגימת משנה אוטומטית של תמונות גדולות, או הספרייה האחרונה, Touch Robot, שמאפשרת לבדוק בקלות אנימציות של אינטראקציות:
paparazzi.gif(end = 3_000) { DebitCard( Modifier.testTag("card") ) val touchRobot = rememberTouchRobot() LaunchedEffect(Unit) { touchRobot.onNode(hasTestTag("card")).performGesture { draw( path = createAndroidHeadPath(), duration = 3.seconds, ) } } } /** A path drawing the Android head. */ fun createAndroidHeadPath(bounds: Rect): Path = TODO() |
|
Jake Wharton, שהשתמש ב-Compose בדרכים חדשניות (למשל molecule, ואפילו יצר ממשק משתמש באמצעות Compose לטרמינל עם mosaic). Chris Banes, שפיתח במהלך השנים ספריות רבות של Compose, כולל הספרייה האהובה עלינו ביותר לאחרונה – Haze לטשטוש הרקע, ורבים ממומחי Google לפיתוח Android כמו Akshay Chordiya, Huyen Tue Dao ו- Katie Barnett, שתרמו להצלחה של Compose. אבל אנחנו לא בוחרים אנשים ספציפיים – היו כל כך הרבה תורמים נהדרים לבסיס הקוד של Compose, ורבים מכם ממשיכים לתת לנו השראה עם הדוגמאות המעניינות, הספריות וההרצאות המעמיקות שלכם. בלי הקהילה, Jetpack Compose לא היה מצליח כמו שהוא היום.
כל הכבוד על 5 השנים הבאות, ועוד!
Jetpack Compose התפתח מרעיון ניסיוני לסטנדרט בפיתוח ממשקי משתמש ל-Android. תודה לכל צוות Toolkit ב-Google, ולקהילת המפתחים העולמית המדהימה שכתבה ספריות, דיווחה על באגים והרחיבה את הגבולות של מה שאפשר לעשות עם ממשק משתמש הצהרתי.
השבוע נחגוג את יום ההולדת עם כמה מסיבות יום הולדת פיזיות ברחבי העולם, ועם מסיבת יום הולדת בשידור חי בערוץ YouTube של Android Developers ב-30 ביולי בשעה 13:00 UTC. במהלך הזמן הזה, נהיה זמינים לשיחה, נדון בתכונה 'יצירת תוכן' ונענה על השאלות שלכם.
מאחלים לך עוד 5 שנים מוצלחות של יצירה!
-
חדשות על מוצריםבמהלך כמעט 5 השנים שחלפו מאז השקת Jetpack Compose, השקענו מאמצים כדי לספק לכם את כל התכונות, הביצועים והכלים שאתם צריכים כדי ליצור ממשקי משתמש מדהימים במגוון מכשירי Android.
Nick Butcher • משך הקריאה: 2 דקות -
חדשות על מוצריםהיום, הגרסה של Jetpack Compose מדצמבר 2025 יציבה. הגרסה הזו כוללת את גרסה 1.10 של מודולי הליבה של Compose ואת גרסה 1.4 של Material 3, ומוסיפה תכונות חדשות ושיפורים משמעותיים בביצועים.
Nick Butcher • משך הקריאה: 6 דקות -
חדשות על מוצריםגרסת Android Studio Quail 2 יציבה ומוכנה לשימוש בסביבת ייצור. היא מביאה שינוי לסביבת הפיתוח המשולבת (IDE) עם תהליכי עבודה מקבילים של סוכנים, פרופילים של דליפות זיכרון שמשולבים באופן מקורי ותיקון קריסות בהתאם להקשר.
Amman Asfaw • משך הקריאה: 3 דקות
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?