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

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

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

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

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

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

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

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

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

  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. תבניות שאפשר לבחור מהן. לעריכה בזמן אמת, בוחרים באפשרות ריקון הכתיבה.
  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. אחרי שמפעילים את העריכה בזמן אמת, סימן הווי הירוק עדכני מופיע בפינה הימנית העליונה של חלון הכלי מכשירים שפועלים:

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

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

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

לדוגמה, עורכים את ה-method הקיים 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 לא הצליח לעדכן את העריכות. בודקים אם באינדיקטור של 'עריכה בזמן אמת' מופיע הכיתוב לא מעודכן כפי שמוצג בתרשים 5, שמציין שגיאת הידור. כדי לקבל מידע על השגיאה והצעות לפתרון שלה, לוחצים על האינדיקטור.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Int
  • String
  • Color
  • Dp
  • Boolean

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

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

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

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

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

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

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