היום אנחנו מציינים באופן רשמי חמש שנים מאז ההשקה של 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 ובימים הראשונים של הפיתוח.
מבט לאחור
ההתחלה של Compose הייתה שונה מאוד ממה שאתם מכירים היום. שני פרויקטים התנהלו במקביל בצוות 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. הם יצרו הרבה חוויות משתמש מהנות באמצעות Compose, כמו משנה הסרט המהנה הזה ואפקט הגליץ':
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). כריס ביינס, שבנה במהלך השנים ספריות רבות של Compose, כולל האהובה עלינו ביותר – Haze לטשטוש הרקע, ורבים ממומחי Google לפיתוח Android כמו אקשיי קורדיה, הויין טו דאו וקייטי בארנט, שתרמו להצלחה של 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 דקות -
חדשות על מוצריםאחד מהנושאים העומדים בראש סדרי העדיפויות שלנו ב-Google Play הוא לספק חוויה בטוחה באינטרנט ולהגן על המשתמשים מפני נזק.
Paul Feng • משך הקריאה: 2 דקות
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?