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

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

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

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

ל-Live Edit יש שלושה מצבים:

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

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

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

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

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

איך מתחילים לערוך בזמן אמת

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

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

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

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

  3. בוחרים את התבנית Empty Compose Activity לטלפון ולטאבלט ולוחצים על Next.

    בחירת תבנית ב-Android Studio
    איור 1. תבניות שאפשר לבחור מהן. לעריכה בזמן אמת, בוחרים באפשרות Empty Compose Activity.
  4. ממלאים את תיבת הדו-שיח New Project (פרויקט חדש) עם הפרטים הנדרשים: שם, שם החבילה, מיקום השמירה, ערכת ה-SDK המינימלית ושפת תצורת ה-build.

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

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

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

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

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

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

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

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

    ממשק המשתמש של סמל הווי הירוק בעריכה בזמן אמת

ביצוע שינויים ובדיקתם

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

לדוגמה, עורכים את השיטה הקיימת 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)
    )
}

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

שינויים בשיטת הברכה שחלים על מכשיר
איור 4. מכשיר בדיקה שבו מוצגים השינויים שערכתם בזמן אמת בשיטה Greeting.

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

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

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

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

בהמשך מופיעה רשימה של ההגבלות הקיימות.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    התכונה 'עריכה בזמן אמת' זמינה ב-Android Studio Giraffe. כדי להפעיל את התכונה, עוברים אל קובץ > הגדרות > עורך > עריכה בזמן אמת (ב-macOS: Android Studio > הגדרות > עורך > עריכה בזמן אמת).

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

    כדאי להשתמש בתכונה 'עריכה בזמן אמת' כשרוצים לראות במהירות את ההשפעה של עדכונים ברכיבי ממשק המשתמש (כמו עדכוני מודификаторים ואנימציות) על חוויית השימוש הכוללת באפליקציה.

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

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

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

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

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

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

  • Int
  • String
  • Color
  • Dp
  • Boolean

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

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

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

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

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

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

משתמש לוחץ על הלחצן 'החלת השינויים'