שיטות מומלצות

‫Gemini ב-Android Studio הוא שותף לתכנות שמאיץ את תהליך העבודה של הפיתוח. הוא יכול ליצור קוד, לסכם נושאים מורכבים, למצוא משאבים ספציפיים ועוד. תקשורת יעילה היא המפתח למיצוי הפוטנציאל המלא של Gemini.

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

שימוש ב-Agent Mode

Agent Mode (מצב סוכן) ב-Gemini ב-Android Studio מאפשר לכם לעשות הרבה יותר ממה שאפשר לעשות בשיחה רגילה עם Gemini. אתם יכולים להגדיר לנציג יעד ברמה גבוהה, והנציג יפרק את הבעיה וייצור תוכנית לפתרון שלה. הסוכן קורא לכלים, עורך כמה קבצים ומתקן שגיאות תוך כדי. מצב סוכן עוזר לכם לטפל במשימות מורכבות בצורה יעילה יותר, ומקצר את כל תהליך הפיתוח.

לכתוב הנחיות מפורטות

כדי להפיק את התוצאות הטובות ביותר מ-Gemini ב-Android Studio, מומלץ לתת הוראות ברורות וספציפיות. אם יש ספריות, ממשקי API או גישות מסוימות שאתם רוצים להשתמש בהם, כדאי לכלול אותם בשאלה או בקובץ השורש AGENTS.md של הפרויקט כדי שהם יישמרו לאורך האינטראקציות. אפשר לחשוב על זה כמו על שליחת דוח על באג: ככל שתספקו יותר מידע, כך נוכל לפתור את הבעיה מהר יותר וביעילות רבה יותר.

הטמעה של פונקציונליות חדשה:

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

יצירת קוד:

כותבים פונקציית השהיה של Kotlin שמשתמשת בספריית Coil כדי להוריד תמונה ממחרוזת נתונה של כתובת URL.

הפונקציה צריכה להיקרא fetchImageAsBitmap. הפונקציה צריכה לקבל כארגומנטים את Context ואת כתובת ה-URL של String, ולהחזיר Bitmap שניתן להגדיר כ-null. אם יש שגיאה ברשת או בשגיאת פענוח, היא אמורה ללכוד את החריגה, לרשום אותה ביומן ולהחזיר null.

כתוב פונקציה להורדת תמונה.

הסבר של מושג:

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

אילו אפשרויות יש לי כדי שהאפליקציה תמשיך לפעול בזמן שהמשתמש עושה דברים אחרים במכשיר? מהן הדרישות לגבי רמת ה-API וההשלכות על חיי הסוללה בכל אחת מהגישות?

להסביר על שירותי Android.

תארו את מבנה התשובה

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

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

מבנה התשובה:

יוצרים ישות Room לפרופיל משתמש. הוא צריך להכיל את השדות id, userName, email ו-memberSince. השדה id אמור להיווצר אוטומטית. השדה memberSince צריך לייצג חותמת זמן.

יוצרים ישות Room לפרופיל משתמש.

אם אתם שואלים שאלה פתוחה יותר, כדאי לבקש x מספר אפשרויות.

הגבלת התשובה:

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

פירוק של בקשות מורכבות למשימות קטנות יותר

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

הנחיות רציפות:

הנחיה 1: מודל הנתונים
תחילה, תיצור מחלקת נתונים ב-Kotlin בשם User. הוא צריך לכלול שלושה מאפיינים: id (מספר שלם), name (מחרוזת) ו-email (מחרוזת).

הנחיה 2: שכבת הרשת
עכשיו, יוצרים ממשק API של Retrofit בשם ApiService. היא צריכה לכלול suspend fun יחיד בשם getUsers() שמחזיר List<User>.

הנחיה 3: The state management
Next, write a UsersViewModel that takes the ApiService as a dependency. ה-UsersViewModel צריך לחשוף StateFlow של מחלקה UiState אטומה שיכולה לייצג מצבי Loading, Success(users: List) ו-Error(message: String). יוצרים פונקציה ב-ViewModel כדי לאחזר את המשתמשים ולעדכן את המצב. כתוב בדיקות יחידה עבור הפונקציות החדשות

הנחיה 4: שכבת ממשק המשתמש
לבסוף, כתוב פונקציית Jetpack Compose בשם UserListScreen שמקבלת את UiState כפרמטר. משתמשים בהצהרת when כדי להציג CircularProgressIndicator למצב הטעינה, LazyColumn של שמות משתמשים למצב ההצלחה ורכיב Text עם הודעת השגיאה למצב השגיאה. מוסיפים בדיקות לאימות הפונקציונליות החדשה.

יוצרים מסך Jetpack Compose שמביא רשימה של משתמשים מ-JSON API ומציג אותם ברשימה. האפליקציה צריכה לכלול ViewModel שמשתמש ב-Retrofit ובקורוטינות, מאגר לטיפול בלוגיקת הנתונים, מחלקת נתונים User, והיא צריכה להציג מצבי טעינה ושגיאה.

ניהול ההקשר

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

  • מצרפים תמונות כדי לספק תצוגה חזותית של ממשק המשתמש שאתם רוצים ליצור או של ארכיטקטורת האפליקציה שאתם מנסים להבין.
  • מצרפים קבצים כדי להדגיש חלקים רלוונטיים בבסיס הקוד.
  • אתם יכולים להשתמש בקבצי .aiexclude כדי ש-Gemini יתעלם מחלקים מסוימים בבסיס הקוד.
  • אתם יכולים להשתמש בקבצים מסוג AGENTS.md כדי לתת הוראות ספציפיות לפרויקט ולשתף אותן עם חברי הצוות. כשמשתמשים בקובצי AGENTS.md, צריך להשתמש בכותרות ובפורמט Markdown כדי שההוראות יהיו ברורות.
  • כשמשתמשים במצב סוכן, צריך להגדיר שרתי MCP כדי להרחיב את הידע והיכולות של Gemini עם הסביבה החיצונית.

בקשת הסברים

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

שיפור ההוראות

בדומה לעבודה עם עמית לעבודה, לפעמים צריך לנהל שיחה עם Gemini ב-Android Studio כדי לקבל הבהרות לגבי המשימה והתוצאה הרצויה. אם התשובה הראשונית של Gemini לא מספיקה, אפשר להשיב לו עם משוב והצעות לשיפור. אם התשובה משתפרת בעקבות ההצעות שלכם, כדאי לשלב את ההצעה בהנחיה המקורית על ידי עדכון הערך בספריית ההנחיות או עדכון הקובץ AGENTS.md.