मिनी ऐप्लिकेशन के लिए क्या कारगर रहा
इस चैप्टर में, मैं वेब डेवलपर के नज़रिए से, मिनी ऐप्लिकेशन के बारे में रिसर्च करने से मिले सबक के बारे में बताना चाहता हूं. इसके अलावा, इस सवाल का जवाब भी देना चाहता हूं कि मिनी ऐप्लिकेशन को डेवलप करने का क्या मतलब है.
घटक
टैब, ऐकॉर्डियन, कैरसेल वगैरह जैसे सामान्य यूज़र इंटरफ़ेस (यूआई) पैराडाइम को फिर से बनाने और डेवलपर को एक और बार इनका इस्तेमाल करने के लिए मजबूर करने के बजाय, मिनी ऐप्लिकेशन में डिफ़ॉल्ट रूप से कॉम्पोनेंट के विकल्प मौजूद होते हैं. ज़रूरत पड़ने पर, इनमें और कॉम्पोनेंट जोड़े जा सकते हैं. वेब पर भी कई विकल्प हैं. मैंने इनमें से कुछ विकल्पों को मिनी ऐप्लिकेशन के कॉम्पोनेंट के बारे में बताने वाले चैप्टर में शामिल किया है. अगर सब कुछ सही होता, तो वेब पर कॉम्पोनेंट लाइब्रेरी इस तरह बनाई जातीं कि उन्हें आसानी से एक-दूसरे के साथ इस्तेमाल किया जा सके. आम तौर पर, किसी कॉम्पोनेंट का इस्तेमाल करने के लिए, आपको डिज़ाइन सिस्टम को खरीदना पड़ता है. इसके अलावा, कॉम्पोनेंट लाइब्रेरी को इस तरह से डिस्ट्रिब्यूट किया जाता है कि उसे पूरा खरीदना पड़ता है या कुछ भी नहीं. हालांकि, किसी प्रोजेक्ट में अलग-अलग कॉम्पोनेंट को आसानी से नहीं जोड़ा जा सकता. हालांकि, ऐसे एटमिक कॉम्पोनेंट भी हैं जिनका इस्तेमाल अलग से किया जा सकता है. इसके अलावा, generic-components जैसी लाइब्रेरी भी हैं, जिन्हें खास मकसद से स्टाइल नहीं किया गया है. ऐसे आइटम ढूंढना और उनका इस्तेमाल करना एक अच्छा आइडिया है.
Model-view-viewmodel
मॉडल–व्यू–व्यूमॉडल (MVVM) आर्किटेक्चर पैटर्न, मार्कअप भाषा की मदद से ग्राफ़िकल यूज़र इंटरफ़ेस (व्यू) के डेवलपमेंट को बैक-एंड लॉजिक (मॉडल) के डेवलपमेंट से अलग करने में मदद करता है. इसका मतलब है कि व्यू किसी खास मॉडल प्लैटफ़ॉर्म पर निर्भर नहीं है. इस पैटर्न के कुछ नुकसान हैं, लेकिन आम तौर पर यह मिनी ऐप्लिकेशन जैसे जटिल ऐप्लिकेशन के लिए बहुत अच्छा काम करता है. यह खास तौर पर, बेहतर टेंप्लेट लाइब्रेरी के साथ बेहतरीन तरीके से काम कर सकती है. इसके बारे में जानने के लिए, अगला चैप्टर देखें.
पेज के हिसाब से सोचना
मिनी ऐप्लिकेशन को डीबग करने से पता चलता है कि ये असल में मल्टी-पेज ऐप्लिकेशन (एमपीए) हैं. इससे कई फ़ायदे मिलते हैं. उदाहरण के लिए, इससे आसानी से रूटिंग की जा सकती है और हर पेज के लिए स्टाइल को बिना किसी रुकावट के लागू किया जा सकता है. लोगों ने प्रोग्रेसिव वेब ऐप्लिकेशन में एमपीए आर्किटेक्चर को लागू कर लिया है. पेजों के हिसाब से सोचने से, हर पेज की सीएसएस और JavaScript फ़ाइलों जैसे रिसॉर्स और इमेज और वीडियो जैसी अन्य ऐसेट को मैनेज करने में भी मदद मिलती है. सबसे अहम बात यह है कि इस तरह से बनाने का मतलब है कि अगर आपने कुछ और लोड नहीं किया है, तो आपको बिना किसी शुल्क के, रूट के हिसाब से कोड का बंटवारा करने की सुविधा मिलती है. ऐसे में, हर पेज सिर्फ़ वही लोड करता है जो उसे काम करने के लिए ज़रूरी होता है.
बिल्ड प्रोसेस
मिनी ऐप्लिकेशन में, बिल्ड करने की प्रोसेस नहीं दिखती. वेब पर, Snowpack जैसे आधुनिक बिल्ड टूल, JavaScript के पहले से मौजूद मॉड्यूल सिस्टम (इसे ईएसएम भी कहा जाता है) का फ़ायदा लेते हैं. इससे, वे ग़ैर-ज़रूरी काम से बचते हैं और प्रोजेक्ट कितना भी बड़ा क्यों न हो, तेज़ी से काम करते हैं. वेब बंडल जैसी टेक्नोलॉजी अभी शुरुआती दौर में हैं. हालांकि, इन्हें बिल्ड प्रोसेस में आसानी से जोड़ा जा सकता है.
बेहतरीन सुविधाएं
वेब प्लैटफ़ॉर्म में हाल ही में कई नई सुविधाएं जोड़ी गई हैं. अब ब्लूटूथ, यूएसबी, एचआईडी, सीरियल, और NFC के ज़रिए डिवाइसों को ऐक्सेस किया जा सकता है. वेब पर, ये बेहतर सुविधाएं सीधे तौर पर उपलब्ध होती हैं. वेबव्यू में चलने वाले और JavaScript ब्रिज पर निर्भर रहने वाले मिनी ऐप्लिकेशन के लिए, ऐसा नहीं होता. इसलिए, आपको JavaScript ब्रिज से दिए गए एपीआई के लिए प्रोग्राम नहीं करना पड़ता, बल्कि किसी इंटरमीडियरी ऐक्टर के बिना ब्राउज़र एपीआई के लिए प्रोग्राम करना पड़ता है.
Acknowledgements
इस लेख की समीक्षा, जो मेडली, केस बेस्केस, मिलिका मिहाइलिया, ऐलन केंट, और कीथ गु ने की है.