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

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

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

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

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

लाइव एडिट

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

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

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

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

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

सबसे सही तरीका यह है:

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

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

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

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

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

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

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

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

    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. अपना ऐप्लिकेशन डिप्लॉय करने के लिए, Run यूज़र इंटरफ़ेस (यूआई) बटन पर क्लिक करें.

  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 फ़ंक्शन के कोड में बाद में किए गए बदलावों से, ऐप्लिकेशन की स्थिति रीसेट नहीं होती.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Int
  • String
  • Color
  • Dp
  • Boolean

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

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

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

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

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

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

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