मिनी ऐप्लिकेशन के लिए DevTools

डेवलपर के लिए उपलब्ध सुविधाएं

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

मिनी ऐप्लिकेशन के आईडीई

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

मिनी ऐप्लिकेशन के स्टार्टर प्रोजेक्ट

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

डेवलपमेंट फ़्लो

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

WeChat DevTools ऐप्लिकेशन विंडो में सिम्युलेटर, कोड एडिटर, और डीबगर दिखाया गया है.
WeChat DevTools में सिम्युलेटर, कोड एडिटर, और डीबगर शामिल हैं.
Alipay DevTools ऐप्लिकेशन विंडो में कोड एडिटर, सिम्युलेटर, और डीबगर दिखाया गया है.
Alipay DevTools में कोड एडिटर, सिम्युलेटर, और डीबगर शामिल हैं.
Baidu DevTools ऐप्लिकेशन विंडो में सिम्युलेटर, कोड एडिटर, और डीबगर दिखाया गया है.
Baidu DevTools में सिम्युलेटर, कोड एडिटर, और डीबगर शामिल हैं.
ByteDance DevTools ऐप्लिकेशन विंडो में सिम्युलेटर, कोड एडिटर, और डीबगर दिखाया गया है.
सिम्युलेटर, कोड एडिटर, और डीबगर के साथ ByteDance DevTools.
Quick App DevTools की ऐप्लिकेशन विंडो में कोड एडिटर, सिम्युलेटर, और डीबगर दिखाया गया है.
कोड एडिटर, सिम्युलेटर, और डीबगर के साथ Quick App DevTools.

जैसा कि आप देख सकते हैं, सभी आईडीई के बुनियादी कॉम्पोनेंट काफ़ी मिलते-जुलते हैं. आपके पास हमेशा Monaco Editor पर आधारित कोड एडिटर होता है. यह वही प्रोजेक्ट है जो VS Code को भी बेहतर बनाता है. सभी आईडीई में, Chrome DevTools के फ़्रंटएंड पर आधारित एक डीबगर होता है. इसमें कुछ बदलाव किए गए हैं. इनके बारे में बाद में ज़्यादा जानकारी दी जाएगी (डीबगर देखें). आईडीई को अपने-आप NW.js या Electron ऐप्लिकेशन के तौर पर लागू किया जाता है. आईडीई में सिम्युलेटर को NW.js <webview> टैग या Electron <webview> टैग के तौर पर लागू किया जाता है. ये टैग, Chromium <webview> टैग पर आधारित होते हैं. अगर आपको IDE के इंटरनल में दिलचस्पी है, तो अक्सर Chrome DevTools की मदद से इनकी जांच की जा सकती है. इसके लिए, कीबोर्ड शॉर्टकट Control+Alt+I (या Mac पर Command+Option+I) का इस्तेमाल करें.

Chrome DevTools में, Baidu के DevTools की जांच की जा रही है. इसमें Chrome DevTools के Elements पैनल में सिम्युलेटर का वेबव्यू टैग दिख रहा है.
Chrome DevTools की मदद से Baidu DevTools की जांच करने पर पता चलता है कि सिम्युलेटर को Electron <webview> टैग के तौर पर लागू किया गया है.

सिम्युलेटर और असली डिवाइस पर टेस्टिंग और डीबग करना

सिम्युलेटर, Chrome DevTools के डिवाइस मोड की तरह काम करता है. अलग-अलग Android और iOS डिवाइसों का सिम्युलेशन किया जा सकता है. साथ ही, स्केल और डिवाइस ओरिएंटेशन बदला जा सकता है. इसके अलावा, अलग-अलग नेटवर्क स्टेटस, मेमोरी प्रेशर, बारकोड पढ़ने की सुविधा, अचानक बंद होने की समस्या, और डार्क मोड का सिम्युलेशन भी किया जा सकता है.

हालांकि, बिल्ट-इन सिम्युलेटर से यह पता चल जाता है कि ऐप्लिकेशन कैसा काम करता है, लेकिन डिवाइस पर टेस्टिंग करने का कोई विकल्प नहीं है. जैसे, सामान्य वेब ऐप्लिकेशन के साथ किया जाता है. डेवलपमेंट के दौरान मिनी ऐप्लिकेशन की टेस्टिंग, सिर्फ़ एक क्यूआर कोड स्कैन करके की जा सकती है. उदाहरण के लिए, ByteDance DevTools में, किसी असली डिवाइस से आईडीई के ज़रिए डाइनैमिक तरीके से जनरेट किए गए क्यूआर कोड को स्कैन करने पर, मिनी ऐप्लिकेशन का क्लाउड पर होस्ट किया गया वर्शन खुलता है. इसके बाद, इसे तुरंत डिवाइस पर टेस्ट किया जा सकता है. ByteDance के लिए यह इस तरह काम करता है कि क्यूआर कोड (example) के पीछे मौजूद यूआरएल, होस्ट किए गए पेज (example) पर रीडायरेक्ट करता है. इस पेज में खास यूआरआई स्कीम वाले लिंक होते हैं. जैसे, snssdk1128://. इससे Douyin या Toutiao जैसे ByteDance के अलग-अलग सुपर ऐप्लिकेशन पर मिनी ऐप्लिकेशन की झलक देखी जा सकती है (यहां एक उदाहरण दिया गया है). सुपर ऐप्लिकेशन की सुविधा देने वाली अन्य कंपनियां, इंटरमीडिएट पेज पर नहीं जाती हैं. वे सीधे तौर पर झलक खोलती हैं.

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

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

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

डीबगर

एलिमेंट डीबग करना

मिनी ऐप्लिकेशन को डीबग करने का तरीका, Chrome DevTools का इस्तेमाल करने वाले लोगों के लिए जाना-पहचाना है. हालांकि, कुछ ज़रूरी अंतर हैं. इनकी वजह से, वर्कफ़्लो को मिनी ऐप्लिकेशन के हिसाब से बनाया गया है. Chrome DevTools के Elements पैनल के बजाय, मिनी ऐप्लिकेशन के आईडीई में एक ऐसा पैनल होता है जिसे पसंद के मुताबिक बनाया गया होता है. यह पैनल, एचटीएमएल की खास भाषा के हिसाब से बनाया जाता है. उदाहरण के लिए, WeChat के मामले में, पैनल को Wxml कहा जाता है. इसका मतलब है WeiXin Markup Language. Baidu DevTools में इसे Swan Element कहा जाता है. ByteDance DevTools इसे Bxml कहता है. Alipay इसे AXML कहता है. वहीं, Quick App पैनल को सिर्फ़ UX के तौर पर दिखाता है. हम इन मार्कअप भाषाओं के बारे में बाद में बात करेंगे.

WeChat DevTools के &#39;Wxml&#39; पैनल में किसी इमेज की जांच करना. इससे पता चलता है कि इस्तेमाल किया जा रहा टैग, `image` टैग है.
WeChat DevTools की मदद से, <image> एलिमेंट की जांच करना.

कस्टम एलिमेंट के बारे में ज़्यादा जानकारी

about://inspect/#devices के ज़रिए किसी असली डिवाइस पर WebView की जांच करने से पता चलता है कि WeChat DevTools जान-बूझकर सच्चाई छिपा रहा था. WeChat DevTools में <image> दिख रहा है, जबकि मुझे <wx-image> नाम का कस्टम एलिमेंट देखना है. इसमें <div> नाम का सिर्फ़ एक चाइल्ड एलिमेंट है. यह ध्यान देने वाली बात है कि यह कस्टम एलिमेंट, शैडो डीओएम का इस्तेमाल नहीं करता है. इन कॉम्पोनेंट के बारे में बाद में ज़्यादा जानकारी दी जाएगी.

Chrome DevTools की मदद से, किसी असली डिवाइस पर चल रहे WeChat मिनी ऐप्लिकेशन की जांच करना. WeChat DevTools में, मुझे `image` टैग दिख रहा है. वहीं, Chrome DevTools में मुझे `wx-image` कस्टम एलिमेंट दिख रहा है.
WeChat DevTools की मदद से <image> एलिमेंट की जांच करने से पता चलता है कि यह असल में <wx-image> कस्टम एलिमेंट है.

सीएसएस डीबग करना

एक और अंतर यह है कि सीएसएस की अलग-अलग बोलियों में, रिस्पॉन्सिव पिक्सल के लिए नई लंबाई वाली यूनिट rpx का इस्तेमाल किया गया है. इस यूनिट के बारे में बाद में ज़्यादा जानकारी दी जाएगी. WeChat DevTools, डिवाइस के हिसाब से सीएसएस की लंबाई की इकाइयों का इस्तेमाल करता है, ताकि अलग-अलग डिवाइसों के साइज़ के लिए डेवलपमेंट को ज़्यादा सहज बनाया जा सके.

WeChat DevTools में, `200rpx` की टॉप और बॉटम पैडिंग वाले व्यू की जांच करना.
WeChat DevTools की मदद से, किसी व्यू के रिस्पॉन्सिव पिक्सल (200rpx 0) में तय की गई पैडिंग की जांच करना.

परफ़ॉर्मेंस ऑडिट

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

पहले से मौजूद ऑडिट टूल की मदद से, परफ़ॉर्मेंस ऑडिट किया जा रहा है. स्कोर में कुल स्कोर, परफ़ॉर्मेंस, अनुभव, और सबसे सही तरीका दिखाया गया है. हर स्कोर 100 में से 100 पॉइंट है.
WeChat DevTools में मौजूद ऑडिट टूल, कुल स्कोर, परफ़ॉर्मेंस, अनुभव, और सबसे सही तरीका दिखा रहा है.

एपीआई मॉकिंग

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

WeChat DevTools में, एपीआई एंडपॉइंट के लिए मॉक रिस्पॉन्स सेट अप करना.
WeChat DevTools में इंटिग्रेट की गई एपीआई रिस्पॉन्स मॉक करने की सुविधा.

Acknowledgements

इस लेख की समीक्षा जो मेडली, केसी बास्क, मिलिका मिहाज्लिया, ऐलन केंट, और कीथ गु ने की है.