פיתוח קוד איטרטיבי

מפתחי אפליקציות לנייד בדרך כלל מפתחים את ממשק המשתמש של האפליקציה בשלבים, ולא את הכול בבת אחת. ב-Android Studio, הגישה הזו מיושמת ב-Jetpack Compose באמצעות כלים שלא דורשים build מלא כדי לבדוק, לשנות ערכים ולאמת את התוצאה הסופית.

איטרציה של ממשק משתמש בעזרת AI

אתם יכולים להשתמש בסוכן ה-AI ב-Android Studio כדי לשפר ולשנות את ממשק המשתמש של Compose באופן איטרטיבי ישירות מהתצוגה המקדימה של העיצוב. לוחצים לחיצה ימנית על תצוגה מקדימה של Compose ובוחרים באחת מפעולות ה-AI הבאות:

  • התאמת ממשק המשתמש לתמונת היעד: בוחרים באפשרות הזו כדי להעלות מוקאפ של עיצוב לדוגמה. לאחר מכן, הסוכן מציע שינויים בקוד כדי שההטמעה תתאים לעיצוב כמה שיותר.
תרשים 1. עדכון ממשק המשתמש כך שיתאים לתמונת יעד.
  • שינוי ממשק המשתמש: אתם יכולים להשתמש בהנחיות בשפה טבעית (לדוגמה, "שנה את צבע הכפתור לכחול") כדי לתאר שינויים ספציפיים שאתם רוצים לבצע בממשק המשתמש.
איור 2. מבקשים מהסוכן לשנות את ממשק המשתמש.

עריכה בזמן אמת

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

ל"עריכה בזמן אמת" יש שלושה מצבים:

  • ידני: השינויים בקוד מוחלים כשמפעילים אותם ידנית באמצעות Control+'‎ (Command+'‎ ב-macOS)
  • שמירה ידנית: השינויים בקוד מופעלים כששומרים אותם ידנית באמצעות Control+S (או Command+S ב-macOS).
  • אוטומטי: השינויים חלים במכשיר או באמולטור כשמעדכנים פונקציה קומפוזבילית.

התכונה "עריכה בזמן אמת" מתמקדת בשינויים בקוד שקשורים לממשק המשתמש ולחוויית המשתמש. התכונה "עריכה בזמן אמת" לא תומכת בשינויים כמו עדכונים של חתימות של שיטות, הוספת שיטות חדשות או שינויים בהיררכיית המחלקות. למידע נוסף, עיינו ברשימת המגבלות של Live Edit.

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

תהליך העבודה המומלץ הוא:

  1. מגדירים את האפליקציה כדי שאפשר יהיה להפעיל אותה.
  2. כדאי להשתמש ב-Live Edit כמה שיותר, עד שצריך לבצע שינוי שלא נתמך ב-Live Edit, כמו הוספת שיטות חדשות בזמן שהאפליקציה פועלת.
  3. אחרי שמבצעים שינוי שלא נתמך, לוחצים על Run ריצה כדי להפעיל מחדש את האפליקציה ולהמשיך את העריכה בזמן אמת.

איך מתחילים להשתמש בעריכה בזמן אמת

כדי להתחיל, פועלים לפי השלבים הבאים כדי ליצור Activity ריקה של Compose, להפעיל את Live Edit בפרויקט ולבצע שינויים באמצעות Live Edit.

הגדרת הפרויקט החדש

  1. לפני שמתחילים, ודאו שמותקנת אצלכם גרסת Android Studio Giraffe או גרסה חדשה יותר, ושרמת ה-API של המכשיר הפיזי או האמולטור היא לפחות 30.

  2. פותחים את Android Studio ובוחרים באפשרות New Project (פרויקט חדש) בתיבת הדו-שיח Welcome to Android Studio (ברוכים הבאים ל-Android Studio). אם כבר יש לכם פרויקט פתוח, אתם יכולים ליצור פרויקט חדש דרך File > New > New Project.

  3. בוחרים את התבנית Empty Compose Activity ל-Phone and Tablet ולוחצים על Next.

    בחירת תבנית ב-Android Studio
    איור 3. תבניות שאפשר לבחור מהן. כדי להשתמש ב-Live Edit, בוחרים באפשרות Empty Compose Activity.
  4. ממלאים את הפרטים הנדרשים בתיבת הדו-שיח New Project: שם, שם החבילה, מיקום השמירה, גרסת ה-SDK המינימלית ושפת תצורת ה-build.

    דוגמה להגדרות הפרויקט משלב 4 שהוזנו ב-Android Studio
    איור 4. דוגמה להגדרות הפרויקט.
  5. לוחצים על סיום.

הפעלת Live Edit

  1. עוברים להגדרות כדי להפעיל את "עריכה בזמן אמת".

    • ב-Windows או ב-Linux, עוברים אל File ‏ > Settings ‏ > Editor ‏ > Live Edit.
    • ב-macOS, עוברים אל Android Studio > Settings (הגדרות) > Editor (עורך) > Live Edit (עריכה בזמן אמת).
  2. בהגדרות, בוחרים באפשרות עריכה בזמן אמת ובמצב שרוצים להפעיל.

    במצב ידני, השינויים בקוד נשלחים בכל פעם שמקישים על Control+'‎ (או Command+'‎ ב-macOS). במצב שמירה ידנית, השינויים בקוד מוחלים בכל פעם ששומרים באופן ידני באמצעות Control+S (או Command+S ב-macOS). במצב אוטומטי, השינויים בקוד מוחלים במכשיר או באמולטור בזמן שאתם מבצעים אותם.

    ממשק משתמש של תיבת סימון לעריכה בזמן אמת בהגדרות של Android Studio
    איור 5. הגדרות של עריכה בזמן אמת.
  3. בעורך, פותחים את הקובץ MainActivity, שהוא נקודת הכניסה לאפליקציה.

  4. לוחצים על Run כפתור בממשק המשתמש כדי לפרוס את האפליקציה.

  5. אחרי שמפעילים את התכונה "עריכה בשידור חי", סימן הווי הירוק Up-to-date מופיע בפינה השמאלית העליונה של חלון הכלי Running Devices:

    ממשק משתמש של סימן וי ירוק ב-Live Edit

ביצוע ובדיקה של שינויים

כשמבצעים שינויים נתמכים בכלי העריכה, מכשיר הבדיקה הווירטואלי או הפיזי מתעדכן באופן אוטומטי.

לדוגמה, עורכים את השיטה הקיימת Greeting ב-MainActivity באופן הבא:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello $name!",
        Modifier
            .padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

השינויים מופיעים באופן מיידי במכשיר הבדיקה, כמו שמוצג באיור 6.

שינויים בשיטת הפתיחה שבוצעו במכשיר
איור 6. מכשיר בדיקה שמוצגים בו השינויים של "עריכה בזמן אמת" ב-method‏ Greeting.

פתרון בעיות בעריכה בזמן אמת

אם אתם לא רואים את השינויים במכשיר הבדיקה, יכול להיות ש-Android Studio לא הצליח לעדכן את השינויים. בודקים אם באינדיקטור של Live Edit כתוב Out Of Date, כמו שמוצג באיור 7, מה שמצביע על שגיאת קומפילציה. כדי לקבל מידע על השגיאה והצעות לפתרון, לוחצים על האינדיקטור.

סמל של עריכה בזמן אמת לא עדכנית
איור 7. אינדיקטור הסטטוס של עריכה בזמן אמת.

המגבלות של "עריכה בזמן אמת"

בהמשך מופיעה רשימה של המגבלות הנוכחיות.

  • [רלוונטי רק ל-Android Studio Giraffe ואילך] כדי להשתמש בעריכה בזמן אמת, צריך את Compose Runtime מגרסה 1.3.0 ואילך. אם בפרויקט שלכם מותקנת גרסה ישנה יותר של Compose, התכונה "עריכה בזמן אמת" מושבתת.

  • [רלוונטי רק ל-Android Studio Giraffe ואילך] כדי להשתמש בעריכה בזמן אמת, נדרשת גרסה 8.1.0-alpha05 ומעלה של AGP. אם בפרויקט שלכם מוגדרת גרסה ישנה יותר של AGP, התכונה "עריכה בזמן אמת" מושבתת.

  • כדי להשתמש בעריכה בזמן אמת, צריך מכשיר פיזי או אמולטור עם רמת API ‏30 ומעלה.

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

  • התכונה "עריכה בזמן אמת" מאפסת את מצב האפליקציה בפעם הראשונה שמשנים פונקציית Compose בקובץ. זה קורה רק אחרי השינוי הראשון בקוד – מצב האפליקציה לא מתאפס בשינויים הבאים בקוד שמבצעים בפונקציות של Compose בקובץ הזה.

  • יכול להיות ששינוי מחלקות באמצעות Live Edit יפגע בביצועים. מריצים את האפליקציה ומשתמשים בגרסת build נקייה להפצה אם רוצים להעריך את הביצועים שלה.

  • כדי שמנפה הבאגים יפעל על מחלקות ששיניתם באמצעות Live Edit, אתם צריכים לבצע הרצה מלאה.

  • אפליקציה שפועלת עלולה לקרוס כשעורכים אותה באמצעות "עריכה בזמן אמת". במקרה כזה, אפשר לפרוס מחדש את האפליקציה באמצעות הלחצן Run כפתור
בממשק המשתמש.

  • התכונה "עריכה בשידור חי" לא מבצעת שינויים ב-bytecode שמוגדרים בקובץ ה-build של הפרויקט. לדוגמה, שינויים ב-bytecode שיופעלו כשהפרויקט נוצר באמצעות האפשרויות בתפריט Build או בלחיצה על הלחצנים Build או Run.

  • פונקציות שהן לא פונקציה קומפוזבילית מתעדכנות בזמן אמת במכשירים או באמולטור, ומופעלת רה-קומפוזיציה מלאה. יכול להיות שהפונקציה המעודכנת לא תופעל במהלך ה-recomposition המלא. בפונקציות לא קומפוזביליות, צריך להפעיל את הפונקציות שעודכנו או להפעיל מחדש את האפליקציה.

  • העריכה בזמן אמת לא ממשיכה כשמפעילים מחדש את האפליקציה. צריך להפעיל את האפליקציה שוב.

  • התכונה "עריכה בזמן אמת" תומכת רק בתהליכים שניתן לנפות בהם באגים.

  • התכונה "עריכה בזמן אמת" לא תומכת בפרויקטים שמשתמשים בערכים מותאמים אישית של moduleName בקטע kotlinOptions בתצורת ה-build.

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

  • התכונה "עריכה בזמן אמת" פועלת עם פריסות בכמה מכשירים (פריסות בכמה מכשירים שנוצרו באמצעות בחירה בכמה מכשירים בתפריט הנפתח של מכשיר היעד). עם זאת, אין תמיכה רשמית בשיטה הזו ועלולות להיות בעיות. אם נתקלתם בבעיות, דווחו עליהן.

  • התכונות Apply Changes ו"החלת שינויים בקוד" לא תואמות לתכונה Live Edit, וצריך להפעיל מחדש את האפליקציה הפועלת.

  • בשלב הזה, "עריכה בזמן אמת" לא תומכת בפרויקטים של Android Automotive.

שאלות נפוצות על עריכה בזמן אמת

  • מה הסטטוס הנוכחי של העריכה בזמן אמת?

    התכונה "עריכה בזמן אמת" זמינה ב-Android Studio Giraffe. כדי להפעיל אותה, עוברים אל File > Settings > Editor > Live Edit (Android Studio > Settings > Editor > Live Edit ב-macOS).

  • מתי כדאי להשתמש בעריכה בזמן אמת?

    השתמשו בעריכה בזמן אמת כשאתם רוצים לראות במהירות את ההשפעה של עדכונים על רכיבי UX (כמו עדכוני מגדירים ואנימציות) על חוויית השימוש הכוללת באפליקציה.

  • מתי לא כדאי להשתמש בעריכה בזמן אמת?

    התכונה "עריכה בזמן אמת" מתמקדת בשינויים בקוד שקשורים לממשק המשתמש ולחוויית המשתמש. היא לא תומכת בשינויים כמו עדכונים של חתימות של שיטות, הוספת שיטות חדשות או שינויים בהיררכיית המחלקות. מידע נוסף מופיע בקטע המגבלות של Live Edit.

  • מתי כדאי להשתמש בתצוגה מקדימה של Compose?

    כדאי להשתמש בתצוגה מקדימה של Compose כשמפתחים רכיבים נפרדים של Composable. התצוגה המקדימה ממחישה את רכיבי Compose ומתרעננת באופן אוטומטי כדי להציג את ההשפעה של שינויי הקוד. התצוגה המקדימה תומכת גם בצפייה ברכיבים בממשק המשתמש בהגדרות ובמצבים שונים, כמו עיצוב כהה, הגדרות מקומיות וקנה מידה של גופנים.

פיתוח קוד איטרטיבי באמצעות Compose

התכונות "עריכה בזמן אמת" ו-Hot Reload ב-Compose Multiplatform יכולות לחסוך לכם זמן ולשפר את הפרודוקטיביות שלכם כשאתם מפתחים באמצעות Compose. עם זאת, הם משרתים את הצרכים של סוגי פיתוח שונים:

  • Live Edit תומכת בפיתוח איטרטיבי באמצעות Jetpack Compose לאפליקציות ל-Android. היא מאפשרת לעדכן רכיבים קומפוזביליים באמולטורים ובמכשירים פיזיים בזמן אמת. הפונקציונליות הזו מצמצמת את המעברים בין כתיבת האפליקציה לבין פיתוח האפליקציה, ומאפשרת לכם להתמקד בכתיבת הקוד למשך זמן רב יותר בלי הפרעות.

  • התכונה Compose Hot Reload עונה על אותו צורך, אבל תומכת באפליקציות למחשב שנבנו באמצעות Compose Multiplatform. הוא מאפשר לכם לבצע שינויים בקוד של ממשק המשתמש באפליקציית Compose Multiplatform ולראות את התוצאות בזמן אמת, על ידי טעינה מחדש של הקוד בכל פעם שהוא משתנה.

למרות ששתי התכונות האלה משתמשות בהרבה טכנולוגיות דומות במנוע של Compose ותומכות בהרבה תרחישי שימוש דומים, אין להן את אותן יכולות כי הן חלות על סוגים שונים של פיתוח ב-Compose.

אם אתם מפתחים אפליקציה ל-Android, כדאי להשתמש ב-Live Edit כדי להאיץ את תהליך הפיתוח. אם אתם מפתחים אפליקציה למחשב באמצעות Compose Multiplatform, אתם צריכים להשתמש ב-Compose Hot Reload.

עריכה בזמן אמת של ערכים מילוליים (הוצא משימוש)

‫Android Studio יכול לעדכן בזמן אמת כמה קבועים מילוליים שמשמשים ברכיבים קומפוזביליים בתצוגות מקדימות, באמולטור ובמכשיר פיזי. הנה כמה סוגים נתמכים:

  • Int
  • String
  • Color
  • Dp
  • Boolean

סרטון שבו המשתמש משנה ערכים מילוליים בקוד המקור, והתצוגה המקדימה מתעדכנת באופן דינמי

כדי לראות ערכים קבועים שמפעילים עדכונים בזמן אמת בלי שלב הקימפול, צריך להפעיל את העיטורים של הערכים הקבועים באמצעות האינדיקטור של ממשק המשתמש לעריכה בזמן אמת של ערכים קבועים:

הפעלת עריכה בזמן אמת של ערכים מילוליים

החלת השינויים

התכונה Apply Changes מאפשרת לעדכן קוד ומשאבים בלי לפרוס מחדש את האפליקציה באמולטור או במכשיר פיזי (עם כמה מגבלות).

בכל פעם שמוסיפים, משנים או מוחקים רכיבים קומפוזביליים, אפשר לעדכן את האפליקציה בלי לפרוס אותה מחדש. פשוט לוחצים על הלחצן Apply Code Changes:

משתמש לוחץ על הכפתור "החלת השינויים"