बार-बार लागू होने वाला कोड डेवलपमेंट

मोबाइल डेवलपर के तौर पर, अक्सर अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) को एक साथ बनाने के बजाय, उसे स्टेप बाय स्टेप बनाया जाता है. Android Studio, Jetpack Compose के साथ इस अप्रोच का इस्तेमाल करता है. इसके लिए, यह ऐसे टूल उपलब्ध कराता है जिनकी मदद से, पूरा बिल्ड किए बिना ही जांच की जा सकती है, वैल्यू में बदलाव किए जा सकते हैं, और फ़ाइनल नतीजे की पुष्टि की जा सकती है.

एआई की मदद से यूज़र इंटरफ़ेस (यूआई) में बदलाव करना

Android Studio में मौजूद एआई एजेंट का इस्तेमाल करके, डिज़ाइन की झलक से सीधे तौर पर Compose यूज़र इंटरफ़ेस (यूआई) को बेहतर बनाया जा सकता है और उसमें बदलाव किया जा सकता है. 'लिखें' सुविधा की झलक पर राइट क्लिक करें और इनमें से कोई एक एआई की मदद से की जाने वाली कार्रवाइयां चुनें:

  • यूज़र इंटरफ़ेस (यूआई) को टारगेट इमेज से मैच करें: रेफ़रंस डिज़ाइन मॉकअप अपलोड करने के लिए चुनें. इसके बाद, एजेंट कोड में बदलाव करने का सुझाव देता है, ताकि आपका कोड डिज़ाइन से ज़्यादा से ज़्यादा मेल खाए.
पहली इमेज. यूज़र इंटरफ़ेस (यूआई) को टारगेट इमेज से मैच करने के लिए अपडेट करें.
  • यूज़र इंटरफ़ेस (यूआई) में बदलाव करना: यूज़र इंटरफ़ेस (यूआई) में कुछ बदलाव करने के लिए, सामान्य भाषा वाले प्रॉम्प्ट का इस्तेमाल करें. उदाहरण के लिए, "बटन का रंग नीला कर दो".
दूसरी इमेज. एजेंट से यूज़र इंटरफ़ेस (यूआई) को बदलने के लिए कहें.

लाइव एडिट

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

लाइव एडिट में तीन मोड होते हैं:

  • मैन्युअल: कोड में किए गए बदलाव तब लागू होते हैं, जब उन्हें, Control+' (macOS पर Command+') का इस्तेमाल करके मैन्युअल तरीके से पुश किया जाता है
  • सेव करने पर मैन्युअल: कोड में किए गए बदलाव तब लागू होते हैं, जब उन्हें Control+S (macOS पर Command+S) का इस्तेमाल करके मैन्युअल तरीके से सेव किया जाता है.
  • ऑटोमैटिक: किसी ऐप्लिकेशन बनाने की सुविधा को अपडेट करने पर, आपके डिवाइस या एम्युलेटर में बदलाव लागू हो जाते हैं.

लाइव एडिट की सुविधा, यूज़र इंटरफ़ेस (यूआई) और उपयोगकर्ता अनुभव (यूएक्स) से जुड़े कोड में किए गए बदलावों पर फ़ोकस करती है. लाइव एडिट की सुविधा, इन बदलावों के साथ काम नहीं करती: मेथड सिग्नेचर अपडेट करना, नए तरीके जोड़ना या क्लास के क्रम में बदलाव करना. ज़्यादा जानकारी के लिए, लाइव एडिट की सुविधाओं से जुड़ी पाबंदियां देखें.

यह सुविधा, ऐप्लिकेशन बनाने और उसे चलाने या बदलाव लागू करने की सुविधा की जगह नहीं लेती है. इसके बजाय, इसे Compose यूज़र इंटरफ़ेस (यूआई) को बनाने, डिप्लॉय करने, और उसे बेहतर बनाने के दौरान आपके वर्कफ़्लो को ऑप्टिमाइज़ करने के लिए डिज़ाइन किया गया है.

सबसे सही तरीके से काम करने का तरीका यहां दिया गया है:

  1. अपने ऐप्लिकेशन को सेट अप करें, ताकि उसे चलाया जा सके.
  2. जब तक हो सके, लाइव एडिट की सुविधा का इस्तेमाल करें. ऐसा तब तक करें, जब तक आपको कोई ऐसा बदलाव न करना हो जो लाइव एडिट की सुविधा के साथ काम नहीं करता. जैसे, ऐप्लिकेशन के चालू होने के दौरान नए तरीके जोड़ना.
  3. ऐसे बदलाव करने के बाद जो काम नहीं करते, चलाएं Run
icon पर क्लिक करके, अपने ऐप्लिकेशन को रीस्टार्ट करें और लाइव एडिट फिर शुरू करें.

लाइव एडिट का इस्तेमाल शुरू करना

शुरू करने के लिए, इन तरीकों का इस्तेमाल करके एक खाली Compose Activity बनाएं. इसके बाद, अपने प्रोजेक्ट के लिए लाइव एडिट की सुविधा चालू करें और लाइव एडिट की मदद से बदलाव करें.

अपना नया प्रोजेक्ट सेट अप करना

  1. शुरू करने से पहले, पक्का करें कि आपने Android Studio Giraffe या उसके बाद का वर्शन इंस्टॉल किया हो. साथ ही, यह भी पक्का करें कि आपके डिवाइस या एम्युलेटर का एपीआई लेवल कम से कम 30 हो.

  2. Android Studio खोलें. इसके बाद, Android Studio में आपका स्वागत है डायलॉग में जाकर, नया प्रोजेक्ट चुनें. अगर आपके पास पहले से कोई प्रोजेक्ट खुला हुआ है, तो फ़ाइल > नया > नया प्रोजेक्ट पर जाकर नया प्रोजेक्ट बनाया जा सकता है.

  3. फ़ोन और टैबलेट के लिए, Empty Compose Activity टेंप्लेट चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.

    Android Studio में टेंप्लेट चुनना
    तीसरी इमेज. इनमें से कोई भी टेंप्लेट चुना जा सकता है. लाइव एडिट के लिए, Empty Compose Activity चुनें.
  4. नया प्रोजेक्ट डायलॉग बॉक्स में ज़रूरी जानकारी डालें: नाम, पैकेज का नाम, सेव करने की जगह, एसडीके का कम से कम वर्शन, और बिल्ड कॉन्फ़िगरेशन की भाषा.

    Android Studio में, चौथे चरण में बताई गई प्रोजेक्ट सेटिंग का उदाहरण
    चौथी इमेज. प्रोजेक्ट सेटिंग का उदाहरण.
  5. पूरा करें पर क्लिक करें.

लाइव एडिट की सुविधा चालू करना

  1. लाइव एडिट की सुविधा चालू करने के लिए, सेटिंग पर जाएं.

    • Windows या Linux पर, फ़ाइल > सेटिंग > एडिटर > लाइव एडिट पर जाएं.
    • macOS पर, Android Studio > Settings > Editor > लाइव एडिट पर जाएं.
  2. लाइव एडिट विकल्प चुनें. इसके बाद, सेटिंग में जाकर वह मोड चुनें जिसे आपको चालू करना है.

    मैन्युअल मोड में, कोड में किए गए बदलाव तब पुश होते हैं, जब Control+' (macOS पर Command+') दबाया जाता है. सेव करने के मैन्युअल मोड में, कोड में किए गए बदलाव तब लागू होते हैं, जब उन्हें Control+S (macOS पर Command+S) का इस्तेमाल करके मैन्युअल तरीके से सेव किया जाता है. ऑटोमैटिक मोड में, कोड में किए गए बदलाव आपके डिवाइस या एम्युलेटर में लागू हो जाते हैं.

    Android Studio की सेटिंग में, लाइव एडिट के लिए चेकबॉक्स वाला यूज़र इंटरफ़ेस
    पांचवीं इमेज. लाइव एडिट की सेटिंग.
  3. एडिटर में, MainActivity फ़ाइल खोलें. यह आपके ऐप्लिकेशन का एंट्री पॉइंट है.

  4. अपने ऐप्लिकेशन को डिप्लॉय करने के लिए, चलाएं यूज़र इंटरफ़ेस (यूआई) बटन पर क्लिक करें.

  5. लाइव एडिट चालू करने के बाद, अप-टू-डेट हरे रंग का सही का निशान, डिवाइसों पर चल रहा है टूल विंडो में सबसे ऊपर दाईं ओर दिखता है:

    लाइव एडिट के लिए, हरे रंग के सही के निशान वाला यूज़र इंटरफ़ेस

बदलाव करना और उनकी समीक्षा करना

एडिटर में बदलाव करने पर, वर्चुअल या फ़िज़िकल टेस्ट डिवाइस अपने-आप अपडेट हो जाता है.

उदाहरण के लिए, MainActivity में मौजूद Greeting तरीके में बदलाव करके, इसे यहां दिए गए तरीके में बदलें:

@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)
    )
}

आपके बदलाव, टेस्ट डिवाइस पर तुरंत दिखते हैं. जैसा कि छठी इमेज में दिखाया गया है.

किसी डिवाइस पर, अभिवादन करने के तरीके में किए गए बदलाव
छठी इमेज. टेस्ट डिवाइस पर, Greeting तरीके से किए गए लाइव एडिट के बदलाव दिखाए जा रहे हैं.

लाइव एडिट की सुविधा से जुड़ी समस्या हल करना

अगर आपको टेस्ट डिवाइस पर किए गए बदलाव नहीं दिखते हैं, तो हो सकता है कि Android Studio आपके बदलावों को अपडेट न कर पाया हो. देखें कि लाइव एडिट के इंडिकेटर में, फ़िगर 7 में दिखाए गए तरीके से पुराना हो गया है लिखा हो. इससे पता चलता है कि कंपाइल करने में गड़बड़ी हुई है. गड़बड़ी के बारे में जानकारी पाने और उसे ठीक करने के सुझाव पाने के लिए, इंडिकेटर पर क्लिक करें.

लाइव एडिट के लिए, पुराना आइकॉन
सातवीं इमेज. लाइव एडिट का स्टेटस दिखाने वाला इंडिकेटर.

लाइव एडिट की सुविधा से जुड़ी सीमाएं

यहां मौजूदा सीमाओं की सूची दी गई है.

  • [यह सिर्फ़ Android Studio Giraffe और इसके बाद के वर्शन पर लागू होता है] लाइव एडिट के लिए, Compose Runtime 1.3.0 या इसके बाद का वर्शन होना ज़रूरी है. अगर आपका प्रोजेक्ट Compose के पुराने वर्शन का इस्तेमाल करता है, तो लाइव एडिट की सुविधा बंद हो जाती है.

  • [यह सिर्फ़ Android Studio Giraffe और इसके बाद के वर्शन पर लागू होता है] लाइव एडिट के लिए, AGP 8.1.0-alpha05 या इसके बाद का वर्शन होना ज़रूरी है. अगर आपके प्रोजेक्ट में AGP के पुराने वर्शन का इस्तेमाल किया जा रहा है, तो लाइव एडिट की सुविधा बंद हो जाती है.

  • लाइव एडिट के लिए, किसी ऐसे डिवाइस या एम्युलेटर की ज़रूरत होती है जिस पर एपीआई लेवल 30 या उसके बाद का वर्शन चल रहा हो.

  • लाइव एडिट की सुविधा किसी फ़ंक्शन के सिर्फ़ मुख्य हिस्से में बदलाव करने की अनुमति देती है. इसका मतलब है कि फ़ंक्शन का नाम या सिग्नेचर नहीं बदला जा सकता. साथ ही, कोई फ़ंक्शन जोड़ा या हटाया नहीं जा सकता. इसके अलावा, उन फ़ील्ड में भी बदलाव नहीं किया जा सकता जो फ़ंक्शन से जुड़े नहीं हैं.

  • किसी फ़ाइल में Compose फ़ंक्शन में पहली बार बदलाव करने पर, लाइव एडिट की सुविधा ऐप्लिकेशन की स्थिति को रीसेट कर देती है. ऐसा सिर्फ़ कोड में पहली बार बदलाव करने के बाद होता है. इसके बाद, उस फ़ाइल में Compose फ़ंक्शन के कोड में किए गए बदलावों से ऐप्लिकेशन की स्थिति रीसेट नहीं होती.

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

  • लाइव एडिट की सुविधा का इस्तेमाल करके बदली गई क्लास पर डीबगर को चलाने के लिए, आपको पूरा रन करना होगा.

  • लाइव एडिट की सुविधा का इस्तेमाल करके, पहले से चालू किसी ऐप्लिकेशन में बदलाव करने पर वह क्रैश हो सकता है. अगर ऐसा होता है, तो चलाएं UI
button बटन की मदद से, ऐप्लिकेशन को फिर से डिप्लॉय किया जा सकता है.

  • लाइव एडिट, आपके प्रोजेक्ट की बिल्ड फ़ाइल में तय किए गए किसी भी बाइटकोड में बदलाव नहीं करता. उदाहरण के लिए, बाइटकोड में ऐसा बदलाव जो बिल्ड मेन्यू में मौजूद विकल्पों का इस्तेमाल करके या बिल्ड या चलाएं बटन पर क्लिक करके प्रोजेक्ट को बिल्ड करते समय लागू किया जाता है.

  • कंपोज़ नहीं किए जा सकने वाले फ़ंक्शन, डिवाइस या एम्युलेटर पर लाइव अपडेट किए जाते हैं. साथ ही, पूरा रीकंपोज़िशन ट्रिगर होता है. ऐसा हो सकता है कि पूरी तरह से फिर से कंपोज़ करने पर, अपडेट किया गया फ़ंक्शन लागू न हो. कंपोज़ नहीं किए जा सकने वाले फ़ंक्शन के लिए, आपको नए अपडेट किए गए फ़ंक्शन को ट्रिगर करना होगा या ऐप्लिकेशन को फिर से चलाना होगा.

  • ऐप्लिकेशन को रीस्टार्ट करने पर, लाइव एडिट की सुविधा फिर से शुरू नहीं होती. आपको ऐप्लिकेशन को फिर से चलाना होगा.

  • लाइव एडिट की सुविधा सिर्फ़ डीबग की जा सकने वाली प्रोसेस के साथ काम करती है.

  • लाइव बदलाव करने की सुविधा, उन प्रोजेक्ट के साथ काम नहीं करती है जिनमें बिल्ड कॉन्फ़िगरेशन में kotlinOptions के तहत moduleName के लिए कस्टम वैल्यू का इस्तेमाल किया जाता है.

  • लाइव एडिट की सुविधा, एक से ज़्यादा डिप्लॉयमेंट के साथ काम नहीं करती. इसका मतलब है कि एक डिवाइस पर ऐप्लिकेशन डिप्लॉय करने के बाद, उसे दूसरे डिवाइस पर डिप्लॉय नहीं किया जा सकता. लाइव एडिट की सुविधा, सिर्फ़ उन डिवाइसों पर काम करती है जिन पर ऐप्लिकेशन को हाल ही में डिप्लॉय किया गया था.

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

  • बदलाव लागू करें/कोड में किए गए बदलाव लागू करें, लाइव एडिट के साथ काम नहीं करते. इसके लिए, चालू ऐप्लिकेशन को रीस्टार्ट करना ज़रूरी है.

  • फ़िलहाल, लाइव एडिट की सुविधा Android Automotive प्रोजेक्ट के साथ काम नहीं करती.

लाइव एडिट के बारे में अक्सर पूछे जाने वाले सवाल

  • लाइव एडिट की सुविधा का मौजूदा स्टेटस क्या है?

    लाइव एडिट की सुविधा, Android Studio Giraffe में उपलब्ध है. इसे चालू करने के लिए, फ़ाइल > सेटिंग > एडिटर > लाइव एडिट पर जाएं. macOS पर, Android Studio > सेटिंग > एडिटर > लाइव एडिट पर जाएं.

  • मुझे लाइव एडिट की सुविधा का इस्तेमाल कब करना चाहिए?

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

  • मुझे लाइव एडिट की सुविधा का इस्तेमाल कब नहीं करना चाहिए?

    लाइव एडिट की सुविधा, यूज़र इंटरफ़ेस (यूआई) और उपयोगकर्ता अनुभव (यूएक्स) से जुड़े कोड में किए गए बदलावों पर फ़ोकस करती है. यह इन बदलावों के साथ काम नहीं करता: मेथड सिग्नेचर अपडेट करना, नई मेथड जोड़ना या क्लास के क्रम में बदलाव करना. ज़्यादा जानकारी के लिए, लाइव एडिट की सीमाएं लेख पढ़ें.

  • मुझे Compose झलक का इस्तेमाल कब करना चाहिए?

    अलग-अलग कंपोज़ेबल डेवलप करते समय, Compose झलक का इस्तेमाल करें. झलक में, Compose एलिमेंट दिखते हैं. साथ ही, कोड में किए गए बदलावों का असर दिखाने के लिए, यह अपने-आप रीफ़्रेश हो जाती है. झलक में, यूज़र इंटरफ़ेस (यूआई) एलिमेंट को अलग-अलग कॉन्फ़िगरेशन और स्थितियों में देखने की सुविधा भी मिलती है. जैसे, गहरे रंग वाली थीम, स्थान-भाषाएं, और फ़ॉन्ट स्केल.

Compose के साथ बार-बार कोड डेवलपमेंट

Compose Multiplatform के लिए लाइव एडिट और हॉट रिलोड ऐसी सुविधाएं हैं जो Compose का इस्तेमाल करके ऐप्लिकेशन डेवलप करते समय आपका समय बचा सकती हैं और Compose डेवलप करते समय आपकी प्रॉडक्टिविटी बढ़ा सकती हैं. हालांकि, ये अलग-अलग तरह के डेवलपमेंट की ज़रूरतों को पूरा करते हैं:

  • लाइव एडिट की सुविधा, Android ऐप्लिकेशन के लिए Jetpack Compose के साथ बार-बार डेवलपमेंट करने में मदद करती है. इसकी मदद से, एम्युलेटर और फ़िज़िकल डिवाइसों में कंपोज़ेबल को रीयल टाइम में अपडेट किया जा सकता है. इस सुविधा से, ऐप्लिकेशन बनाने और कोड लिखने के बीच कॉन्टेक्स्ट स्विच करने की ज़रूरत कम हो जाती है. इससे आपको बिना किसी रुकावट के ज़्यादा देर तक कोड लिखने पर ध्यान देने में मदद मिलती है.

  • Compose Hot Reload भी इसी तरह काम करता है. हालांकि, यह Compose Multiplatform से बनाए गए डेस्कटॉप ऐप्लिकेशन के साथ काम करता है. इसकी मदद से, Compose Multiplatform ऐप्लिकेशन में यूज़र इंटरफ़ेस (यूआई) कोड में बदलाव किए जा सकते हैं. साथ ही, जब भी कोड में बदलाव किया जाता है, तो उसे स्मार्ट तरीके से फिर से लोड करके, रीयल टाइम में नतीजे देखे जा सकते हैं.

इन दोनों सुविधाओं में, Compose इंजन की कई टेक्नोलॉजी इस्तेमाल की जाती हैं. साथ ही, ये एक जैसे कई इस्तेमाल के उदाहरणों के साथ काम करती हैं. हालांकि, इनमें एक जैसी सुविधाएं नहीं होतीं, क्योंकि ये Compose डेवलपमेंट के अलग-अलग टाइप पर लागू होती हैं.

अगर आपको कोई Android ऐप्लिकेशन डेवलप करना है, तो डेवलपमेंट की प्रोसेस को तेज़ करने के लिए, लाइव एडिट की सुविधा का इस्तेमाल करें. अगर Compose Multiplatform का इस्तेमाल करके डेस्कटॉप ऐप्लिकेशन बनाया जा रहा है, तो आपको Compose Hot Reload का इस्तेमाल करना चाहिए.

लिटरल में लाइव एडिट की सुविधा (अब काम नहीं करती)

Android Studio, झलक, एम्युलेटर, और फ़िज़िकल डिवाइस पर दिखने वाले कंपोज़ेबल में इस्तेमाल किए गए कुछ कॉन्स्टेंट लिटरल को रीयल टाइम में अपडेट कर सकता है. यहां कुछ ऐसे टाइप दिए गए हैं जिनके लिए यह सुविधा काम करती है:

  • Int
  • String
  • Color
  • Dp
  • Boolean

सोर्स कोड में लिटरल बदलते हुए उपयोगकर्ता का वीडियो. साथ ही, झलक का डाइनैमिक तरीके से अपडेट होना

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

लिटरल में लाइव एडिट की सुविधा चालू करना

बदलाव लागू करें

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

कंपोज़ेबल जोड़ने, उनमें बदलाव करने या उन्हें मिटाने पर, कोड में किए गए बदलाव लागू करें बटन पर क्लिक करके, ऐप्लिकेशन को फिर से डिप्लॉय किए बिना अपडेट किया जा सकता है:

उपयोगकर्ता ने "बदलाव लागू करें" बटन पर क्लिक किया