روال‌های مطلوب

عامل در «استودیو Android» به‌عنوان همکار کدنویسی شما عمل می‌کند و با تولید کد، خلاصه کردن موضوعات پیچیده، پیدا کردن منابع خاص، و غیره، گردش کار توسعه شما را تسریع می‌کند. ارتباط مؤثر کلید باز کردن تمام پتانسیل عامل است.

این راهنما راهبردهایی را برای راه‌اندازی محیط توسعه نرم‌افزار و نوشتن پیام‌واره‌هایی که پاسخ‌های مفید و قابل‌اعتماد ارائه می‌دهند شرح می‌دهد. برای چندین استراتژی، پیام‌واره‌های نمونه‌ای برای موارد استفاده مختلف ارائه کرده‌ایم. برای دیدن پیام‌واره‌های نمونه بیشتر، به گالری پیام‌واره مراجعه کنید.

پاسخی دقیق‌ اضافه کنید

این نماینده با دستورالعمل‌های واضح و مشخص بهترین عملکرد را دارد. اگر کتابخانه‌ها، میاناهای برنامه‌سازی کاربردی، یا رویکردهای خاصی وجود دارد که می‌خواهید از آن‌ها استفاده کنید، آن‌ها را در سؤالتان بگنجانید—یا آن‌ها را در فایل AGENTS.md ریشه پروژه‌تان بگنجانید تا در تعاملات حفظ شوند. این کار را مثل ثبت گزارش اشکال درنظر بگیرید: هرچه اطلاعات بیشتری ارائه دهید، مشکل سریع‌تر و مؤثرتر حل می‌شود.

پیاده‌سازی عملکرد جدید:

چگونه بااستفاده از CameraX پشتیبانی دوربین را به برنامه‌ام اضافه کنم؟ مطمئن شو که هرگونه وابستگی و اجازه‌ای را که برای استفاده از کتابخانه نیاز دارم اضافه کنی.
چگونه پشتیبانی دوربین را به برنامه‌ام اضافه کنم؟

درحال تولید کردن کد:

یک تابع تعلیق Kotlin بنویسید که از کتابخانه Coil برای بارگیری تصویر از رشته نشانی وب داده‌شده استفاده کند.

تابع باید fetchImageAsBitmap نام‌گذاری شود. باید یک Context و یک نشانی وب String را به‌عنوان آرگومان بگیرد و یک Bitmap تهی‌پذیر برگرداند. اگر خطای شبکه یا رمزگشایی وجود داشته باشد، باید استثنا را بگیرد، آن را ثبت کند، و null را برگرداند.

تابعی برای بارگیری تصویر بنویس.

توضیح دادن یک مفهوم:

درحال ساختن برنامه پخش‌کننده موسیقی هستم و باید وقتی برنامه در پس‌زمینه است، بازپخش ادامه یابد.

چه گزینه‌هایی برای فعال نگه داشتن برنامه‌ام درحالی‌که کاربر کارهای دیگری در دستگاه انجام می‌دهد دارم؟ الزامات سطح میانای برنامه‌سازی کاربردی و پیامدهای عمر باتری برای هر رویکرد چیست؟

سرویس‌های Android را توضیح بده.

توصیف ساختار پاسخ

به‌طور پیش‌فرض، عامل پاسخ‌ها را در قالب مکالمه‌ای و پاراگراف‌محور ارائه می‌دهد. اگرچه این کار اغلب برای توضیحات مفید است، اما می‌توانید با گفتن نحوه ساختاردهی پاسخ به آن، نتایج مؤثرتر و قابل‌استفاده‌تری دریافت کنید. مشخص کردن قالب برونداد مدل را هدایت می‌کند تا اطلاعات را به‌شیوه‌ای واضح و قابل‌پیش‌بینی سازمان‌دهی کند و در وقت شما برای قالب‌بندی مجدد آن صرفه‌جویی کند.

اگر می‌خواهید کدی را که توسط نماینده تولید شده است در برنامه‌تان درج کنید و به کد در قالب خاصی نیاز دارید تا بتوانید فوراً از آن استفاده کنید، دستورالعمل‌های واضحی درباره تولید و قالب‌بندی کد به نماینده بدهید.

ساختاربندی پاسخ:

ایجاد نهاد «اتاق» برای نمایه کاربر. باید حاوی فیلدهای id، userName، email، و memberSince باشد. فیلد id باید به‌طور خودکار تولید شود. فیلد memberSince باید نشان‌دهنده مُهر زمان باشد.

ایجاد نهاد «اتاق» برای نمایه کاربر.

اگر سؤال تشریحی می‌پرسید، x گزینه برای آن درخواست کنید.

محدود کردن پاسخ:

چه ابزارهایی برای بهینه‌سازی عملکرد برنامه دردسترس است؟ فهرستی از سه مورد برتر به من بده.
چه ابزارهایی برای بهینه‌سازی عملکرد برنامه دردسترس است؟

تجزیه درخواست‌های پیچیده به تکالیف کوچک‌تر

اگر رویکرد نماینده آن چیزی نیست که انتظار دارید، شاید بهتر باشد به‌جای اینکه همه چیز را یک‌باره بخواهید، نماینده را ازطریق مجموعه‌ای از پیام‌واره‌های کوچک‌تر و متوالی راهنمایی کنید. این رویکرد به شما کنترل بیشتری می‌دهد و به شما امکان می‌دهد هر مرحله را قبل‌از رفتن به مرحله بعدی درستی‌سنجی کنید.

اعمال کردن پیام‌واره‌های متوالی:

پیام‌واره ۱: مدل داده
ابتدا، یک کلاس داده Kotlin به‌نام User ایجاد کنید. باید سه ویژگی داشته باشد: id (یک Int)، name (یک String)، و email (یک String).

پیام‌واره ۲: لایه شبکه
اکنون، میانای Retrofit API به‌نام ApiService ایجاد کنید. به یک suspend fun تکی به‌نام getUsers() نیاز دارد که List<User> را برمی‌گرداند.

پیام‌واره ۳: مدیریت وضعیت
سپس، UsersViewModel را بنویسید که ApiService را به‌عنوان وابستگی می‌گیرد. UsersViewModel باید StateFlow کلاس UiState مهرشده‌ای را که می‌تواند Loading, Success(users: List) و Error(message: String) را نشان دهد، نمایش دهد. تابعی در ViewModel ایجاد کنید تا کاربران را واکشی کند و وضعیت را به‌روز کند. آزمون‌های واحد را برای عملکرد جدید بنویسید.

پیام‌واره ۴: لایه میانای کاربر
درنهایت، تابع Jetpack Compose به‌نام UserListScreen بنویسید که UiState را به‌عنوان پارامتر بپذیرد. از عبارت when برای نمایش CircularProgressIndicator برای حالت بار کردن، LazyColumn نام‌های کاربری برای حالت موفقیت، و عنصر Text با پیام خطا برای حالت خطا استفاده کنید. آزمایش‌هایی اضافه کنید که عملکرد جدید را تأیید کند.

صفحه Jetpack Compose ایجاد کنید که فهرست کاربران را از JSON API واکشی کند و آن‌ها را در فهرست نمایش دهد. باید ViewModel داشته باشد که از Retrofit و کوروتین‌ها استفاده کند، مخزنی برای مدیریت منطق داده‌ها، کلاس داده User، و باید حالت‌های بارگیری و خطا را نشان دهد.

مدیریت بافت

بخش عمده‌ای از کار با عامل، ارائه بافت مناسب است. تکه‌کدهای مربوط، محتوای فایل، و اطلاعات ساختار پروژه را ارائه دهید تا مفیدترین پاسخ‌ها را دریافت کنید. ممکن است لازم باشد برای رسیدن به تعادل مناسب، تکرار کنید: اطلاعات بیش‌ازحد ممکن است باعث گمراهی نماینده شود، درحالی‌که اطلاعات خیلی کم، زمینه کافی برای کمک کردن را فراهم نمی‌کند. از ویژگی‌های دردسترس استفاده کنید تا به نماینده امکان دسترسی به بافت لازم را بدهید:

  • تصاویری پیوست کنید تا تصویری از واسط کاربری‌ای که در ذهن دارید یا معماری برنامه‌ای که می‌خواهید درک کنید ارائه دهید.
  • فایل‌ها را پیوست کنید تا بخش‌های مربوطه پایگاه کد را برجسته کنید.
  • از فایل‌های .aiexclude استفاده کنید تا عامل بخش‌های خاصی از پایگاه کد را نادیده بگیرد.
  • از فایل‌های AGENTS.md برای ارائه دستورالعمل‌های مختص پروژه و هم‌رسانی آن‌ها در سراسر تیمتان استفاده کنید. هنگام استفاده از فایل‌های AGENTS.md، از سرصفحه‌ها و قالب‌بندی Markdown استفاده کنید تا دستورالعمل‌هایتان واضح باشد.
  • هنگام استفاده از «حالت عامل»، سرورهای MCP را پیکربندی کنید تا دانش و قابلیت‌های عامل را با محیط خارجی گسترش دهید.

درخواست توضیح کنید

اگر پاسخ نماینده را متوجه نشدید، از او بخواهید توضیح دهد. این روشی عالی برای یادگیری و تأیید این است که راهکار پیشنهادی برای مورد استفاده شما مناسب است. اگر پاسخ آن چیزی نبود که انتظار داشتید، ممکن است درواقع پاسخ نماینده نادرست باشد و درخواست توضیح فرصتی برای نماینده فراهم می‌کند تا خودش را اصلاح کند.

دستورالعمل‌هایتان را تکرار کنید

مشابه زمانی که با همکار کار می‌کنید، کار کردن با نماینده گاهی اوقات نیاز به ارتباط رفت‌وبرگشتی دارد تا درباره تکلیف و نتیجه موردانتظار شفاف‌سازی شود. اگر پاسخ اولیه نماینده کافی نیست، با بازخورد و پیشنهادهایی برای بهبود به آن پاسخ دهید. اگر پاسخ آن براساس پیشنهادهای شما بهبود یافت، آن پیشنهاد را با به‌روزرسانی ورودی در کتابخانه پیام‌واره یا به‌روزرسانی فایل‌های AGENTS.md در پیام‌واره اصلی بگنجانید.