يعمل "Gemini في استوديو Android" كمساعدك في الترميز، ما يسرّع وتيرة عملك في التطوير من خلال إنشاء الرموز البرمجية وتلخيص المواضيع المعقّدة والعثور على مراجع محدّدة وغير ذلك. التواصل الفعّال هو المفتاح للاستفادة الكاملة من إمكانات Gemini.
يوضّح هذا الدليل استراتيجيات لإعداد بيئة التطوير وكتابة الطلبات التي تؤدي إلى الحصول على ردود مفيدة وموثوقة. بالنسبة إلى الاستراتيجيات المتعدّدة، قدّمنا أمثلة على الطلبات لحالات استخدام مختلفة. للاطّلاع على المزيد من الأمثلة على الطلبات، يمكنك الانتقال إلى معرض الطلبات.
استخدام "وضع الوكيل"
تتجاوز إمكانات وضع "الوكيل" في "Gemini في استوديو Android" ما يمكنك تجربته من خلال مجرد الدردشة مع Gemini. يمكنك تزويد الوكيل بهدف عام، وسيقسّم الوكيل المشكلة ويضع خطة لحلّها. يستعين الوكيل بالأدوات، ويعدّل ملفات متعددة، ويصلح الأخطاء أثناء التنفيذ. تساعدك أداة Agent Mode في تنفيذ المهام المعقّدة بكفاءة أكبر، ما يؤدي إلى تسريع عملية التطوير بأكملها.
تحديد المشكلة بدقة
يعمل "Gemini في استوديو Android" بشكل أفضل مع التعليمات الواضحة والمحدّدة. إذا كانت هناك مكتبات أو واجهات برمجة تطبيقات أو أساليب معيّنة تريد استخدامها، يمكنك تضمينها في سؤالك أو في ملف AGENTS.md الجذر الخاص بمشروعك للاحتفاظ بها في جميع التفاعلات. يمكنك التفكير في الأمر على أنّه تقديم تقرير عن خطأ: فكلما قدّمت معلومات أكثر، تمكّنا من حلّ المشكلة بشكل أسرع وأكثر فعالية.
تنفيذ وظائف جديدة:
الإجراءات التي يُنصح بها
الإجراءات غير المُوصى بها
إنشاء الرمز:
الإجراءات التي يُنصح بها
اكتب دالة تعليق في Kotlin تستخدم مكتبة Coil لتنزيل صورة من سلسلة عنوان URL معيّنة.
يجب أن يكون اسم الدالة fetchImageAsBitmap
. يجب أن تأخذ هذه الدالة
Context
وعنوان URL String
كمعلَمات وأن تعرض
قيمة Bitmap
تقبل القيم الفارغة. في حال حدوث أي خطأ في الشبكة أو في فك الترميز، يجب رصد الاستثناء وتسجيله وعرض null
.
الإجراءات غير المُوصى بها
شرح مفهوم:
الإجراءات التي يُنصح بها
أعمل على إنشاء تطبيق لتشغيل الموسيقى وأحتاج إلى مواصلة التشغيل عندما يكون التطبيق في الخلفية.
ما هي الخيارات المتاحة لي لإبقاء تطبيقي قيد التشغيل بينما ينفّذ المستخدم مهام أخرى على الجهاز؟ ما هي متطلبات مستوى واجهة برمجة التطبيقات وتأثيرها على عمر البطارية لكل طريقة؟
الإجراءات غير المُوصى بها
وصف بنية الإجابة
يقدّم Gemini الإجابات تلقائيًا بتنسيق حواري يتضمّن فقرات. على الرغم من أنّ هذه الطريقة مفيدة غالبًا في تقديم التفسيرات، يمكنك الحصول على نتائج أكثر فعالية وقابلة للاستخدام على الفور من خلال إخبارها بكيفية تنظيم الردّ. يؤدي تحديد تنسيق الإخراج إلى توجيه النموذج لتنظيم المعلومات بطريقة واضحة ويمكن توقّعها، ما يوفّر عليك الوقت الذي قد تستغرقه في إعادة تنسيقها بنفسك.
إذا أردت إدراج رمز برمجي أنشأه Gemini في تطبيقك وكنت بحاجة إلى الرمز بتنسيق معيّن لتتمكّن من استخدامه على الفور، قدِّم لـ Gemini تعليمات واضحة بشأن إنشاء الرمز وتنسيقه.
تنظيم الردّ:
الإجراءات التي يُنصح بها
إنشاء كيان "غرفة" لملف مستخدم يجب أن يحتوي على الحقول id
وuserName
وemail
وmemberSince
. يجب إنشاء حقل id
تلقائيًا. يجب أن يمثّل الحقل memberSince
طابعًا زمنيًا.
الإجراءات غير المُوصى بها
إذا كنت تطرح سؤالاً مفتوحًا أكثر، اطلب منه تقديم x عدد من الخيارات.
حصر الردود:
الإجراءات التي يُنصح بها
الإجراءات غير المُوصى بها
تقسيم الطلبات المعقّدة إلى مهام أصغر
بالنسبة إلى الطلبات المعقّدة التي تتضمّن عدة خطوات، ننصحك بتجربة وضع الوكيل. ومع ذلك، إذا لم يكن أسلوب الوكيل هو ما تتوقّعه، قد يكون من المفيد توجيه Gemini من خلال سلسلة من الطلبات الأصغر والمتسلسلة بدلاً من طلب كل شيء مرة واحدة. يمنحك هذا النهج المزيد من التحكّم ويتيح لك التحقّق من كل خطوة قبل الانتقال إلى الخطوة التالية.
تطبيق الطلبات المتسلسلة:
الإجراءات التي يُنصح بها
الطلب 1: نموذج البيانات
أولاً، أنشئ
فئة بيانات Kotlin باسم User
. يجب أن تتضمّن ثلاث سمات: id
(عدد صحيح) وname
(سلسلة) وemail
(سلسلة).
الطلب 2: طبقة الشبكة
الآن، أنشئ واجهة برمجة تطبيقات Retrofit باسم
ApiService
. يجب أن يحتوي على دالة واحدة suspend fun
باسم
getUsers()
تعرض
List<User>
.
الطلب 3: إدارة الحالة
بعد ذلك، اكتب UsersViewModel
الذي
يستخدم ApiService
كعنصر تابع. يجب أن يعرض UsersViewModel
StateFlow
لفئة UiState
محكمة الإغلاق يمكنها تمثيل حالات Loading, Success(users: List
وError(message: String)
. أنشئ دالة في
ViewModel
لجلب المستخدمين وتعديل الحالة. كتابة اختبارات الوحدة للوظائف الجديدة
الطلب 4: طبقة واجهة المستخدم
أخيرًا، اكتب دالة Jetpack Compose باسم UserListScreen
تقبل UiState
كمعلَمة. استخدِم عبارة when
لعرض CircularProgressIndicator
لحالة التحميل، وLazyColumn
لأسماء المستخدمين في حالة النجاح، وعنصر Text
مع رسالة الخطأ في حالة الخطأ. أضِف اختبارات تتحقّق من الوظيفة الجديدة.
الإجراءات غير المُوصى بها
ViewModel
يستخدم Retrofit وcoroutines، ومستودع للتعامل مع منطق البيانات،
وفئة بيانات User
، ويجب أن يعرض حالات التحميل والخطأ.إدارة السياق
يتمثّل جزء كبير من العمل مع "Gemini في استوديو Android" في توفير السياق المناسب. قدِّم مقتطفات من الرموز ذات الصلة ومحتوى الملفات ومعلومات حول بنية المشروع للحصول على الردود الأكثر فائدة. قد تحتاج إلى تكرار المحاولات للوصول إلى التوازن الصحيح، لأنّ تقديم الكثير من المعلومات قد يضلّل Gemini، بينما تقديم القليل منها لن يوفّر له السياق الكافي لتقديم المساعدة. استخدِم الميزات المتاحة لمنح Gemini إذن الوصول إلى السياق اللازم:
- أرفِق صورًا لتقديم عرض مرئي لواجهة المستخدم التي تتصوّرها أو بنية التطبيق التي تحاول فهمها.
- أرفِق ملفات لتسليط الضوء على الأجزاء ذات الصلة من قاعدة الرموز.
- استخدِم ملفات
.aiexclude
لتجاهل Gemini لأجزاء معيّنة من قاعدة الرموز البرمجية. - استخدِم ملفات AGENTS.md لتقديم تعليمات خاصة بالمشروع ومشاركتها مع فريقك. عند استخدام ملفات AGENTS.md، استخدِم عناوين وتنسيق Markdown لتوضيح تعليماتك.
- عند استخدام "وضع الوكيل"، يمكنك إعداد خوادم MCP لتوسيع نطاق معرفة Gemini وقدراته ليشمل البيئة الخارجية.
طلب تفسيرات
إذا لم تفهم ردّ Gemini في "استوديو Android"، يمكنك طلب توضيح. هذه طريقة رائعة للتعرّف على الحل المقترَح والتأكّد من أنّه مناسب لحالة الاستخدام. إذا لم يكن الردّ على قدر توقعاتك، قد يكون Gemini مخطئًا، وطلب توضيح سيتيح له فرصة تصحيح نفسه.
تكرار التعليمات
كما هو الحال عند العمل مع زميل، يتطلّب العمل مع Gemini في Android Studio أحيانًا بعض التواصل ذهابًا وإيابًا لتوضيح المهمة والنتيجة المتوقّعة. إذا لم يكن رد Gemini الأوّلي كافيًا، يمكنك الردّ عليه وتقديم ملاحظات واقتراحات حول كيفية تحسينه. إذا تحسّنت استجابة الروبوت استنادًا إلى اقتراحاتك، يمكنك دمج هذا الاقتراح في الطلب الأصلي من خلال تعديل الإدخال في مكتبة الطلبات أو تعديل ملفات AGENTS.md.