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

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

लाइव एडिट

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

लाइव बदलाव करने की सुविधा में तीन मोड होते हैं:

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

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

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

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

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

लाइव बदलाव करने की सुविधा का इस्तेमाल शुरू करना

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

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

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

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

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

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

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

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

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

    • Windows या Linux पर, फ़ाइल > सेटिंग > एडिटर > लाइव बदलाव पर जाएं.
    • macOS पर, Android Studio > Settings > Editor > Live Edit पर जाएं.
  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)
    )
}

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

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

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

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

लाइव बदलाव की सुविधा काम नहीं कर रही है आइकॉन
पांचवीं इमेज. लाइव बदलाव करने की सुविधा का स्टेटस दिखाने वाला इंडिकेटर.

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

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

  • [सिर्फ़ 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 > सेटिंग > एडिटर > लाइव एडिट पर जाएं).

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

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

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

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

  • मुझे 'झलक दिखाएं' सुविधा का इस्तेमाल कब करना चाहिए?

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

Compose के साथ इटरेटिव कोड डेवलपमेंट

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

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

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

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

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

लिटरल में लाइव बदलाव करने की सुविधा (बहिष्कृत)

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

  • Int
  • String
  • Color
  • Dp
  • Boolean

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

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

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

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

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

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

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