पठनीयता, सीखने में आसानी, लचीलापन आदि जैसी कुछ वांछनीय विशेषताओं के कारण पायथन एक बहुत लोकप्रिय प्रोग्रामिंग भाषा है।
इसलिए, यह विभिन्न क्षेत्रों या कंप्यूटर प्रोग्रामिंग के पहलुओं जैसे स्क्रिप्टिंग, वेब डेवलपमेंट, साइबर सुरक्षा और मशीन लर्निंग में व्यापक रूप से अपनाया गया है।
पायथन में कई पुस्तकालय और रूपरेखाएँ हैं जो इसे इन विभिन्न क्षेत्रों में उपयोग करने के लिए अनुकूलित करती हैं, जैसे, Django और फ्लास्क वेब विकास में उपयोग किए जाने वाले पायथन ढांचे हैं; मशीन लर्निंग में पांडा, नेम्पी, स्किकिट-लर्न, पायटॉर्च आदि का उपयोग किया जाता है, जबकि साइबर सुरक्षा में स्कैपी, ब्यूटीफुल सूप और क्रिप्टोग्राफी जैसे पायथन लाइब्रेरी का उपयोग किया जाता है।
प्रोग्रामिंग का एक क्षेत्र जहां वास्तव में पायथन का व्यापक रूप से उपयोग नहीं किया जाता है, वह मोबाइल विकास है।
यह इस तथ्य के कारण है कि पायथन निष्पादन में अपेक्षाकृत धीमा है (इसलिए, पायथन ऐप्स कम विशिष्टताओं वाले मोबाइल उपकरणों पर संघर्ष कर सकते हैं), और इस तथ्य के कारण भी कि पायथन, उच्च-स्तरीय भाषा की व्याख्या की जा रही है, इससे बहुत दूर है और हो सकता है मोबाइल ऑपरेटिंग सिस्टम की मूल भाषा (यानी, एंड्रॉइड के लिए जावा और आईओएस के लिए ऑब्जेक्टिव-सी/स्विफ्ट) के साथ अच्छी तरह से काम नहीं करते हैं, जो आम तौर पर संकलित, मध्य-स्तरीय भाषाएं होती हैं।
मोबाइल विकास में पायथन की यह कमी, हालांकि, कई प्रोग्रामरों के लिए एक समस्या है क्योंकि प्रोग्रामिंग में शुरुआती लोगों के लिए पायथन मूल रूप से सबसे लोकप्रिय पहली भाषा है, और वे मोबाइल विकास में तल्लीन करना चाहते हैं जो अरबों मोबाइल के कारण बहुत लाभदायक हो गया है। दुनिया भर में इस्तेमाल होने वाले डिवाइस।
साथ ही, पायथन में पेशेवर जो पहले से ही वेब डेवलपमेंट, आर्टिफिशियल इंटेलिजेंस, या साइबर सुरक्षा के लिए भाषा का उपयोग कर रहे हैं, वे भी एक या दूसरे कारण से अपने सॉफ़्टवेयर को मोबाइल ऐप में बदलना चाह सकते हैं।
यह निश्चित रूप से एक समस्या थी जिसका सामना मैंने पायथन सीखने के बाद किया था और कुछ ऐसी स्क्रिप्ट प्राप्त करने के लिए मोबाइल ऐप बनाने का निर्णय लिया था जो मैंने उन उपयोगकर्ताओं के लिए लिखी थीं जो उन्हें उपयोगी लग सकते हैं।
हालाँकि, मोबाइल विकास के लिए पायथन का उपयोग करना लोकप्रिय नहीं है, लेकिन यह असंभव नहीं है। वास्तव में, पायथन के साथ मोबाइल विकास के लिए कुछ ढांचे और पुस्तकालय मौजूद हैं, और कुछ में काफी बड़ा समुदाय है।
उनमें से कुछ हैं Python-for-Android, Pymob, PyQT(pyqtdeploy), Kivy, RenPi और Beeware।
इनमें से कुछ रूपरेखाएँ यूआई विकास के लिए पायथन के अनुकूल सिंटैक्स को भी विरासत में लेती हैं (उदाहरण के लिए, किवी डिज़ाइन भाषा)। छोटे अनुप्रयोगों या तेजी से प्रोटोटाइप के लिए उपयोग किए जाने पर यह पायथन को एक बहुत ही उपयोगी मोबाइल एप्लिकेशन डेवलपमेंट लैंग्वेज बनाता है।
हालाँकि, मोबाइल के लिए तैयार पायथन ऐप को संकलित या पैकेज करने का प्रयास करते समय बहुत सारी समस्याएँ उत्पन्न होती हैं। कम से कम, किवी के साथ यह मेरा अनुभव था, और मेरे शोध से पता चला कि यह एक सामान्य अनुभव वाली समस्या थी।
इस समस्या का एक कारण शायद यह है कि कितनी बार लाइटवेट पायथन मोबाइल लाइब्रेरी एंड्रॉइड स्टूडियो के परिष्कृत डिबगिंग संसाधनों का उस हद तक लाभ नहीं उठाती है, जिस हद तक फ़्लटर और रिएक्ट नेटिव जैसे लोकप्रिय फ्रेमवर्क करते हैं।
यह लेख इस पैकेजिंग समस्या के संबंध में पायथन के साथ मोबाइल विकास और उन्हें दूर करने के सर्वोत्तम तरीकों की पड़ताल करता है।
पायथन में कुछ लोकप्रिय मोबाइल डेवलपमेंट फ्रेमवर्क
- कीवी: यह वास्तव में एक क्रॉस-प्लेटफ़ॉर्म पायथन फ्रेमवर्क है जो उपयोगकर्ताओं को विंडोज़, मैक, लिनक्स, एंड्रॉइड और आईओएस के लिए एप्लिकेशन बनाने की अनुमति देता है। कीवी यूआई विकसित करने के लिए एक साफ डिजाइन भाषा का उपयोग करता है जो सभी प्लेटफॉर्म पर समान है। यह एप्लिकेशन प्रोग्रामिंग और पैकेज के लिए शुद्ध पायथन का उपयोग करता है (उदाहरण के लिए, बिल्डोज़र का उपयोग कोड को विशिष्ट प्लेटफॉर्म पर तैनात करने में किया जाता है)।
- Pyqtdeploy: यह डेस्कटॉप और मोबाइल उपकरणों के लिए PyQt CLI और GUI एप्लिकेशन या लाइब्रेरी की पैकेजिंग के लिए टूल का एक सेट प्रदान करता है। इस उपकरण के साथ पैक की गई परियोजनाओं को इसके मुफ्त लाइसेंस के कारण व्यावसायीकरण किया जा सकता है।
- बीवेयर: यह टोगा सहित - क्रॉस-प्लेटफ़ॉर्म यूआई के लिए एक टूलकिट, बटाविया - एक जावास्क्रिप्ट हैंडलर और मोबाइल और डेस्कटॉप के लिए पैकेजिंग ऐप के लिए ब्रीफ़केस सहित पायथन ऐप बनाने के लिए टूल का एक सेट है। Beeware ऐप्स का प्लैटफ़ॉर्म-विशिष्ट रूप और अनुभव होता है।
पैकेजिंग समस्या
जबकि विकास प्रक्रिया अक्सर चिकनी और सीधी होती है, किसी भी प्लेटफ़ॉर्म के लिए पायथन ऐप की पैकेजिंग करना अक्सर समस्याग्रस्त होता है। मोबाइल के अलावा, मैंने पायइंस्टॉलर का उपयोग करके पायथन एक्सई फ़ाइल को पैकेज करने का प्रयास करते समय भी इस समस्या का अनुभव किया।
समस्या तब और बढ़ जाती है जब एप्लिकेशन में थर्ड-पार्टी पायथन लाइब्रेरी का उपयोग किया जाता है।
मेरे अनुभव से, एप्लिकेशन की पैकेजिंग करते समय बगों का यह तूफान दो प्रमुख कारणों से उबलता है:
- पायथन मोबाइल डेवलपमेंट लाइब्रेरी में एंड्रॉइड एमुलेटर या एंड्रॉइड डिवाइस के साथ रीयल-टाइम एप्लिकेशन डेवलपमेंट के लिए बहुत कम या कोई समर्थन नहीं है।
फ़्लटर या रिएक्शन नेटिव का उपयोग करने वाले मोबाइल डेवलपर इस बात की सराहना करेंगे कि आपके एप्लिकेशन का निर्माण करते समय वर्चुअल या भौतिक डिवाइस का उपयोग करना कितना उपयोगी है। यह त्वरित सुधार के लिए सभी प्रकार के सिंटैक्स, रनटाइम और संगतता त्रुटियों को जल्दी खोजने में मदद करता है।
अजगर पुस्तकालयों के साथ, हालांकि, डेवलपर्स को आमतौर पर मोबाइल डिवाइस के लिए एपीके संस्करण की पैकेजिंग से पहले अपने डेस्कटॉप डिवाइस पर एप्लिकेशन बनाना पड़ता है।
जब Android या iOS टूल एप्लिकेशन के लिए कोड के साथ इंटरैक्ट करना शुरू करते हैं, तो इसके परिणामस्वरूप बहुत सारी संगतता समस्याएं हो सकती हैं।
इसलिए, समस्या यह है कि डेस्कटॉप वातावरण के लिए बनाए गए एप्लिकेशन को मोबाइल के लिए पैक किया जा रहा है।
यह काफी स्पष्ट लग सकता है, लेकिन पायथन मोबाइल एप्लिकेशन की पैकेजिंग करते समय डेवलपर्स को इसे ध्यान में रखना चाहिए क्योंकि टर्मिनल संभवतः इसे इंगित नहीं कर सकता है (जैसा कि मेरे लिए मामला था)।
यह कीमती विकास समय बर्बाद कर सकता है और डेवलपर को हार मानने के लिए निराश भी कर सकता है।
- तृतीय-पक्ष पुस्तकालयों का उपयोग।
मैं अपने अनुभव के कारण यह इंगित करना आवश्यक समझता हूं; पायथन प्रोग्राम को पैकेज करने का प्रयास करते समय, मैंने इसे विंडोज़ निष्पादन योग्य के रूप में बनाया।
मेरे झटके के लिए, जबकि कार्यक्रम पायथन टर्मिनल पर अच्छी तरह से काम कर रहा था, मुझे आवेदन की पैकेजिंग करते समय तीसरे पक्ष के पुस्तकालयों से असंगतता की शिकायतें मिलीं।
यह तब भी हो सकता है जब एक मोबाइल एप्लिकेशन के रूप में एक पायथन प्रोग्राम की पैकेजिंग की जाती है।
पैकेजिंग पायथन एपीके में बग के इस तूफान को दूर करने के लिए सर्वोत्तम अभ्यास
- अपेक्षा करें कि टर्मिनल मौजूद सभी त्रुटियों को इंगित नहीं कर सकता है।
- उपयोग किए गए पुस्तकालयों के संस्करणों की संगतता पर शोध करें।
- डायनेमिक UI का निर्माण करें जो अतिप्रवाह पैदा किए बिना मोबाइल उपकरणों के अनुकूल हो सके।
- विस्तृत त्रुटि रिपोर्ट के लिए किसी भी उपलब्ध अतिरिक्त डिबगिंग कमांड का उपयोग करें।
- जब आपका ऐप आपके मोबाइल डिवाइस पर चल रहा हो तो अतिरिक्त टर्मिनल रिपोर्ट प्राप्त करने के लिए लॉगकैट रीडर जैसे डिबगिंग एप्लिकेशन का उपयोग करें।