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

मोबाइल डेवलपर के तौर पर, आम तौर पर एक साथ सब कुछ डेवलप करने के बजाय, अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) को धीरे-धीरे डेवलप किया जाता है. 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 में टेंप्लेट चुनना
    पहली इमेज. ऐसे टेंप्लेट जिनमें से कोई एक चुना जा सकता है. लाइव एडिट के लिए, खाली कॉम्पोज़ गतिविधि चुनें.
  4. नया प्रोजेक्ट डायलॉग में ज़रूरी जानकारी दें: नाम, पैकेज का नाम, सेव करने की जगह, कम से कम SDK, और बिल्ड कॉन्फ़िगरेशन की भाषा.

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

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

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

    • Windows या Linux पर, फ़ाइल > सेटिंग > एडिटर > लाइव एडिट पर जाएं.
    • macOS पर, Android Studio > सेटिंग > एडिटर > लाइव एडिट पर जाएं.
  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 आपके बदलावों को अपडेट न कर पाया हो. देखें कि लाइव एडिट इंडिकेटर में, अप-टू-डेट नहीं है लिखा है या नहीं. यह इंडिकेटर, पांचवें चित्र में दिखाया गया है. इससे कंपाइल करने से जुड़ी गड़बड़ी का पता चलता है. गड़बड़ी के बारे में जानकारी पाने और उसे ठीक करने के सुझाव पाने के लिए, इंडिकेटर पर क्लिक करें.

लाइव एडिट आइकॉन का इस्तेमाल नहीं किया जा सकता
पांचवीं इमेज. लाइव एडिट की सुविधा के स्टेटस का इंंडिकेटर.

लाइव एडिट की सीमाएं

फ़िलहाल, इन सीमाओं का पालन करना ज़रूरी है.

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

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

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

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

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

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

  • आपको उन क्लास पर डीबगर चलाना होगा जिनमें आपने लाइव बदलाव की सुविधा का इस्तेमाल करके बदलाव किए हैं.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

लिटरल में लाइव बदलाव करना (अब काम नहीं करता)

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

  • Int
  • String
  • Color
  • Dp
  • Boolean

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

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

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

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

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

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

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