सबसे सही तरीके

Android Studio में Gemini, कोडिंग में आपकी मदद करता है. यह कोड जनरेट करके, मुश्किल विषयों के बारे में खास जानकारी देकर, और खास संसाधन ढूंढकर, डेवलपमेंट के आपके वर्कफ़्लो को बेहतर बनाता है. Gemini की पूरी क्षमता का इस्तेमाल करने के लिए, असरदार तरीके से बातचीत करना ज़रूरी है.

इस गाइड में, डेवलपमेंट एनवायरमेंट सेट अप करने और ऐसे प्रॉम्प्ट लिखने की रणनीतियों के बारे में बताया गया है जिनसे काम के और भरोसेमंद जवाब मिलते हैं. हमने एक से ज़्यादा रणनीतियों के लिए, इस्तेमाल के अलग-अलग उदाहरणों के हिसाब से प्रॉम्प्ट दिए हैं. प्रॉम्प्ट के ज़्यादा उदाहरणों के लिए, प्रॉम्प्ट गैलरी देखें.

Agent मोड का इस्तेमाल करना

'Android Studio में Gemini' का एजेंट मोड, Gemini से चैट करने के मुकाबले ज़्यादा फ़ायदे देता है. एजेंट को कोई हाई-लेवल लक्ष्य दिया जा सकता है. इसके बाद, एजेंट समस्या को छोटे-छोटे हिस्सों में बाँटकर उसे हल करने का प्लान बनाता है. एजेंट, टूल का इस्तेमाल करता है, कई फ़ाइलों में बदलाव करता है, और गड़बड़ियों को ठीक करता है. एजेंट मोड की मदद से, मुश्किल टास्क को बेहतर तरीके से मैनेज किया जा सकता है. साथ ही, इससे ऐप्लिकेशन डेवलपमेंट की पूरी प्रोसेस तेज़ हो जाती है.

सटीक जानकारी दें

Android Studio में Gemini, साफ़ तौर पर दिए गए निर्देशों के हिसाब से सबसे अच्छा काम करता है. अगर आपको कुछ लाइब्रेरी, एपीआई या तरीकों का इस्तेमाल करना है, तो उन्हें अपने सवाल में शामिल करें. इसके अलावा, उन्हें अपने प्रोजेक्ट की रूट AGENTS.md फ़ाइल में शामिल करें, ताकि वे सभी इंटरैक्शन में बने रहें. इसे गड़बड़ी की रिपोर्ट फ़ाइल करने जैसा समझें: जितनी ज़्यादा जानकारी दी जाएगी, समस्या को उतनी ही तेज़ी से और बेहतर तरीके से हल किया जा सकेगा.

नई सुविधा लागू करना:

मैं CameraX का इस्तेमाल करके, अपने ऐप्लिकेशन में कैमरे की सुविधा कैसे जोड़ूं? लाइब्रेरी का इस्तेमाल करने के लिए, ज़रूरी डिपेंडेंसी और अनुमतियां शामिल करना न भूलें.
मैं अपने ऐप्लिकेशन में कैमरे की सुविधा कैसे जोड़ूं?

कोड जनरेट किया जा रहा है:

Coil लाइब्रेरी का इस्तेमाल करने वाला Kotlin सस्पेंड फ़ंक्शन लिखें. यह फ़ंक्शन, दी गई यूआरएल स्ट्रिंग से इमेज डाउनलोड करेगा.

फ़ंक्शन का नाम fetchImageAsBitmap होना चाहिए. इसे Context और String यूआरएल को आर्ग्युमेंट के तौर पर लेना चाहिए. साथ ही, यह Bitmap को नल के तौर पर दिखाता है. अगर नेटवर्क या डिकोडिंग से जुड़ी कोई गड़बड़ी होती है, तो उसे अपवाद को पकड़ना चाहिए, उसे लॉग करना चाहिए, और null को वापस करना चाहिए.

किसी इमेज को डाउनलोड करने के लिए, एक फ़ंक्शन लिखें.

किसी कॉन्सेप्ट के बारे में जानकारी देना:

मुझे एक म्यूज़िक प्लेयर ऐप्लिकेशन बनाना है. इसके लिए, मुझे यह जानना है कि ऐप्लिकेशन के बैकग्राउंड में होने पर भी, संगीत कैसे चलाया जा सकता है.

उपयोगकर्ता के डिवाइस पर अन्य काम करते समय, मेरे ऐप्लिकेशन को चालू रखने के लिए मेरे पास कौनसे विकल्प हैं? हर तरीके के लिए, एपीआई लेवल की ज़रूरी शर्तें क्या हैं और बैटरी लाइफ़ पर इसका क्या असर पड़ता है?

Android की सेवाओं के बारे में जानकारी दो.

जवाब की संरचना के बारे में जानकारी देना

डिफ़ॉल्ट रूप से, Gemini बातचीत वाले पैराग्राफ़ के फ़ॉर्मैट में जवाब देता है. हालांकि, यह सुविधा अक्सर जवाबों को समझने में मददगार होती है. हालांकि, जवाब को कैसे स्ट्रक्चर करना है, यह बताकर आपको ज़्यादा असरदार और तुरंत इस्तेमाल किए जा सकने वाले नतीजे मिल सकते हैं. आउटपुट फ़ॉर्मैट तय करने से, मॉडल को जानकारी को साफ़ तौर पर और अनुमानित तरीके से व्यवस्थित करने का निर्देश मिलता है. इससे आपको जानकारी को खुद से फिर से फ़ॉर्मैट करने में लगने वाला समय बच जाता है.

अगर आपको Gemini से जनरेट किए गए कोड को अपने ऐप्लिकेशन में डालना है और आपको कोड किसी खास फ़ॉर्मैट में चाहिए, ताकि उसे तुरंत इस्तेमाल किया जा सके, तो Gemini को कोड जनरेट करने और उसे फ़ॉर्मैट करने के बारे में साफ़ तौर पर निर्देश दें.

जवाब को स्ट्रक्चर करना:

किसी उपयोगकर्ता प्रोफ़ाइल के लिए Room इकाई बनाएं. इसमें id, userName, email, और memberSince फ़ील्ड की जानकारी होनी चाहिए. id फ़ील्ड अपने-आप जनरेट होना चाहिए. memberSince फ़ील्ड में टाइमस्टैंप होना चाहिए.

किसी उपयोगकर्ता प्रोफ़ाइल के लिए Room इकाई बनाएं.

अगर आपको ऐसा सवाल पूछना है जिसके जवाब में कई विकल्प दिए जा सकते हैं, तो x विकल्पों के लिए सवाल पूछें.

जवाब को सीमित करना:

ऐप्लिकेशन की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए, कौनसे टूल उपलब्ध हैं? मुझे तीन सबसे अच्छे विकल्पों की सूची दो.
ऐप्लिकेशन की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए, कौनसे टूल उपलब्ध हैं?

मुश्किल अनुरोधों को छोटे-छोटे टास्क में बांटना

कई चरणों वाले मुश्किल अनुरोधों के लिए, एजेंट मोड का इस्तेमाल करें. हालांकि, अगर एजेंट का जवाब आपकी उम्मीद के मुताबिक नहीं है, तो Gemini को एक साथ सभी सवालों के जवाब देने के लिए कहने के बजाय, उसे छोटे-छोटे और सिलसिलेवार तरीके से प्रॉम्प्ट दें. इससे आपको बेहतर जवाब मिल सकते हैं. इस तरीके से आपको ज़्यादा कंट्रोल मिलता है. साथ ही, अगले चरण पर जाने से पहले, हर चरण की पुष्टि करने का विकल्प मिलता है.

क्रम से प्रॉम्प्ट लागू करना:

पहला प्रॉम्प्ट: डेटा मॉडल
सबसे पहले, User नाम की Kotlin डेटा क्लास बनाएं. इसमें तीन प्रॉपर्टी होनी चाहिए: id (एक पूर्णांक), name (एक स्ट्रिंग), और email (एक स्ट्रिंग).

दूसरा प्रॉम्प्ट: नेटवर्क लेयर
अब, ApiService नाम का Retrofit API इंटरफ़ेस बनाएं. इसके लिए, एक suspend fun की ज़रूरत होती है. इसे getUsers() कहा जाता है. यह List<User> दिखाता है.

तीसरा प्रॉम्प्ट: स्टेट मैनेजमेंट
इसके बाद, एक UsersViewModel लिखें, जो ApiService को डिपेंडेंसी के तौर पर इस्तेमाल करता हो. UsersViewModel को सील की गई UiState क्लास का StateFlow दिखाना चाहिए. यह Loading, Success(users: List) और Error(message: String) स्थितियों को दिखा सकता है. उपयोगकर्ताओं को फ़ेच करने और स्थिति को अपडेट करने के लिए, ViewModel में एक फ़ंक्शन बनाएं. नई सुविधा के लिए यूनिट टेस्ट लिखें.

चौथा प्रॉम्प्ट: यूज़र इंटरफ़ेस (यूआई) लेयर
आखिर में, UserListScreen नाम का Jetpack Compose फ़ंक्शन लिखें. यह UiState को पैरामीटर के तौर पर स्वीकार करता है. लोडिंग की स्थिति के लिए CircularProgressIndicator, सफलता की स्थिति के लिए उपयोगकर्ता के नामों का LazyColumn, और गड़बड़ी की स्थिति के लिए गड़बड़ी के मैसेज वाला Text एलिमेंट दिखाने के लिए, when स्टेटमेंट का इस्तेमाल करें. ऐसे टेस्ट जोड़ें जिनसे नई सुविधा की पुष्टि हो सके.

Jetpack Compose की एक ऐसी स्क्रीन बनाओ जो JSON API से उपयोगकर्ताओं की सूची फ़ेच करे और उसे सूची में दिखाए. इसमें ViewModel होना चाहिए, जो Retrofit और कोरूटीन का इस्तेमाल करता हो. साथ ही, इसमें डेटा लॉजिक को मैनेज करने के लिए एक रिपॉज़िटरी, एक User डेटा क्लास, और लोडिंग और गड़बड़ी की स्थितियां दिखाने की सुविधा होनी चाहिए.

कॉन्टेक्स्ट मैनेज करना

Android Studio में Gemini का इस्तेमाल करने के लिए, सही कॉन्टेक्स्ट देना ज़रूरी है. सबसे काम के जवाब पाने के लिए, कोड स्निपेट, फ़ाइल के कॉन्टेंट, और प्रोजेक्ट स्ट्रक्चर के बारे में जानकारी दें. आपको सही संतुलन बनाए रखने के लिए, कई बार प्रॉम्प्ट लिखना पड़ सकता है: बहुत ज़्यादा जानकारी देने से, Gemini को सही जवाब देने में मुश्किल हो सकती है. वहीं, बहुत कम जानकारी देने से, Gemini को आपकी मदद करने के लिए ज़रूरी कॉन्टेक्स्ट नहीं मिल पाएगा. ज़रूरी जानकारी देने के लिए, उपलब्ध सुविधाओं का इस्तेमाल करके Gemini को ऐक्सेस दें:

एक्सप्लेनेशंस के लिए अनुरोध करना

अगर आपको Android Studio में Gemini का जवाब समझ नहीं आता है, तो जवाब के बारे में जानकारी मांगें. यह सीखने और यह पुष्टि करने का एक बेहतरीन तरीका है कि सुझाया गया समाधान, आपके इस्तेमाल के लिए सही है. अगर जवाब आपकी उम्मीद के मुताबिक नहीं है, तो हो सकता है कि Gemini का जवाब गलत हो. जवाब के बारे में जानकारी माँगने से, Gemini को अपने जवाब को ठीक करने का मौका मिलेगा.

अपने निर्देशों को बेहतर बनाना

जैसे, किसी सहकर्मी के साथ काम करते समय, आपको कभी-कभी किसी काम और उसके संभावित नतीजे के बारे में साफ़ तौर पर बताने के लिए, उससे बातचीत करनी पड़ती है. इसी तरह, Android Studio में Gemini के साथ काम करते समय भी, आपको कभी-कभी ऐसा करना पड़ सकता है. अगर Gemini का शुरुआती जवाब आपकी ज़रूरत के हिसाब से नहीं है, तो उसे जवाब दें. साथ ही, उसे बेहतर बनाने के लिए सुझाव दें और अपनी राय दें. अगर आपके सुझावों के आधार पर, जवाब में सुधार होता है, तो उस सुझाव को ओरिजनल प्रॉम्प्ट में शामिल करें. इसके लिए, प्रॉम्प्ट लाइब्रेरी में एंट्री अपडेट करें या अपनी AGENTS.md फ़ाइलें अपडेट करें.