डेस्कटॉप के लिए जेटपैक कंपोज़ स्विंग लेयर और ऐप्पल सिलिकॉन सपोर्ट जोड़ता है

JetBrains ने डेस्कटॉप के लिए Jetpack Compose का एक नया संस्करण जारी किया है, जो एक ओपन-सोर्स क्रॉस-प्लेटफ़ॉर्म UI डेवलपमेंट फ्रेमवर्क है।

यदि आप किसी भी प्रकार का विकास कार्य करते हैं, तो आपने संभवतः JetBrains के बारे में सुना होगा। वे IDE के विशाल सुइट के पीछे की कंपनी हैं जिसमें IntelliJ (Android Studio के लिए आधार), CLion, PhpStorm और कई अन्य शामिल हैं। बनाने वाले भी वे ही हैं Kotlin, बेहद लोकप्रिय क्रॉस-प्लेटफ़ॉर्म प्रोग्रामिंग भाषा।

और JetBrains फिर से इस पर वापस आ गया है। लगभग एक साल पहले, Google ने Android के लिए Jetpack Compose नाम से एक नया लेआउट इंजन पेश किया था। यह हो गया है तब से अब तक कई बड़े बदलाव हुए हैं, लेकिन यह एंड्रॉइड के क्लासिक XML लेआउट के लिए एक सक्षम (यद्यपि अभी भी कुछ हद तक अस्थिर) विकल्प में बदल गया है।

जेटपैक कंपोज़ का जेटब्रेन से क्या संबंध है? खैर, एक के लिए, यह कोटलिन में लिखा गया है। लेकिन साथ ही, JetBrains चुपचाप कंपोज़ को डेस्कटॉप स्थान पर पोर्ट करने पर काम कर रहा है। इसे प्रारंभिक डेवलपर पूर्वावलोकन के रूप में सार्वजनिक किया गया है, और अब JetBrains आधिकारिक तौर पर घोषणा करने के लिए तैयार है कि यह मौजूद है।

जेटपैक कंपोज़ क्या है?

मैंने परिचय में इसके बारे में थोड़ी बात की, लेकिन मुझे लगता है कि यह कुछ और स्पष्टीकरण का हकदार है। यदि आपने पहले Android पर विकास किया है, तो संभवतः आप लेआउट कैसे काम करते हैं, इसके अभ्यस्त हैं। सबसे पहले, आप अपने लेआउट को एक XML फ़ाइल में डिज़ाइन करते हैं, और फिर, आप जावा या कोटलिन से उस लेआउट के साथ इंटरैक्ट करते हैं। हालाँकि यह कार्यात्मक है, यह थोड़ा पुराना है, और आपके लेआउट को भाषाओं में विभाजित करने से इसे प्रबंधित करना कठिन हो सकता है।

इसके विकल्प के रूप में, Google ने Jetpack Compose विकसित करना शुरू किया। कंपोज़ एंड्रॉइड के लिए कोटलिन के शीर्ष पर निर्मित एक लेआउट इंजन है। आपके सभी लेआउट और लॉजिक कोड एक ही स्थान पर हैं, जो अन्तरक्रियाशीलता को बहुत आसान बनाता है। यह XML लेआउट की अनिवार्य शैली के बजाय घोषणात्मक भी है।

अनिवार्यता से घोषणात्मक लेआउट इंजन की ओर जाने में कुछ समय लग सकता है, लेकिन कंपोज़ निश्चित रूप से XML की तुलना में एक सुधार है, भले ही यह अभी भी अपने प्रारंभिक चरण में है।

डेस्कटॉप के लिए जेटपैक कंपोज़

इसलिए, कंपोज़ देशी एंड्रॉइड ऐप्स के लिए एक अच्छा लेआउट विकल्प है। लेकिन यह (सामान्यतः) क्रॉस-प्लेटफ़ॉर्म नहीं है। यहीं पर JetBrains आता है। कंपनी ने विंडोज़, लिनक्स और मैकओएस (इंटेल और एआरएम दोनों) के समर्थन के साथ, जेटपैक कंपोज़ को डेस्कटॉप स्पेस में पोर्ट किया है।

जबकि डेस्कटॉप के लिए अन्य लेआउट इंजन मौजूद हैं, जैसे इलेक्ट्रॉन, जावाएफएक्स और यूडब्ल्यूपी, अभी यह थोड़ा गड़बड़ है। कुछ क्रॉस-प्लेटफ़ॉर्म नहीं हैं, इसलिए वे केवल एक विशिष्ट ऑपरेटिंग सिस्टम पर काम करते हैं। अन्य तकनीकी रूप से क्रॉस-प्लेटफ़ॉर्म हैं, लेकिन वितरण के लिए बहुत सारे काम की आवश्यकता होती है। और फिर भी, JavaFX जैसे अन्य लोगों के साथ काम करना कष्टकारी है।

दूसरी ओर, डेस्कटॉप के लिए जेटपैक कंपोज़ का उपयोग करना अपेक्षाकृत आसान है, डिस्प्ले स्केलिंग का समर्थन करता है, इसमें अंतर्निहित स्टाइल है, और (लगभग) पूरी तरह से क्रॉस-प्लेटफ़ॉर्म है। हालाँकि आप अभी तक एक ऑपरेटिंग सिस्टम से सभी वितरणों को संकलित नहीं कर सकते हैं, कोड स्वयं पूरी तरह से पोर्टेबल है। एंड्रॉइड की तरह ही, एक पैकेज्ड ऐप जावा पर आधारित है, हालांकि उपयोगकर्ताओं को इसका उपयोग करने के लिए जेडीके इंस्टॉल करने की आवश्यकता नहीं है।

पार अनुकूलता

चूँकि डेस्कटॉप के लिए कंपोज़ अभी भी नया है, इसमें कुछ सुविधाएँ गायब हैं। डेवलपर्स को इन सीमाओं के आसपास काम करने में मदद करने के लिए, डेस्कटॉप के लिए कंपोज़ दो अधिक लोकप्रिय जावा लेआउट इंजन, JavaFX और स्विंग के साथ इंटरऑपरेबल है। यदि आपके पास इनमें से एक (या दोनों) इंजनों में एक डेस्कटॉप ऐप विकसित है, तो आप अपने वर्तमान कोडबेस को बनाए रखते हुए कंपोज़ में संक्रमण शुरू कर सकते हैं।

एंड्रॉइड + डेस्कटॉप

यदि आप अपने कंपोज़ एंड्रॉइड ऐप को डेस्कटॉप पर लाना चाहते हैं तो क्या होगा? खैर, आप भी ऐसा कर सकते हैं। आपके ऐप के यूआई तत्वों को एंड्रॉइड और डेस्कटॉप के बीच आसानी से साझा किया जा सकता है। आप सब कुछ साझा नहीं कर पाएंगे, लेकिन यह निश्चित रूप से विकास को आसान बनाता है।

एप्पल सिलिकॉन सपोर्ट

मैंने ऊपर इसका उल्लेख किया है, लेकिन मैं इसका फिर से उल्लेख करने जा रहा हूं। नए एप्पल सिलिकॉन मैक बहुत अद्भुत हैं, लेकिन प्रोसेसर एआरएम सीपीयू आर्किटेक्चर पर आधारित हैं, जिसका अर्थ है कि बहुत सारे मैकओएस ऐप वर्तमान में रोसेटा 2 x86 अनुवादक के माध्यम से चल रहे हैं। जबकि Apple ने उस अनुवाद के साथ बहुत अच्छा काम किया, देशी ARM प्रोग्राम अभी भी बेहतर चलेंगे।

खैर, डेस्कटॉप के लिए जेटपैक कंपोज़ मूल रूप से ऐप्पल सिलिकॉन का समर्थन करता है। इसका मतलब है कि जब Apple इसे बंद कर देगा तो आपको अनुवाद से प्रदर्शन में गिरावट या भविष्य में समर्थन के बारे में चिंता करने की ज़रूरत नहीं होगी।

कार्यक्षमता

तो यह अच्छी बात है कि JetBrains ने डेस्कटॉप के लिए एक नया लेआउट इंजन बनाया है, लेकिन कौन कह सकता है कि यह अब हमारे पास जो है उससे बेहतर है?

मुझे।

मैंने SystemUI ट्यूनर के लिए एक सरल अनुमति अनुदानकर्ता ऐप बनाने के लिए इसे लिखते समय नवीनतम उपलब्ध बिल्ड (0.2.0-बिल्ड132) का उपयोग किया था। चूँकि मैं कंपोज़ और घोषणात्मक डिज़ाइन से उतना परिचित नहीं हूँ, इसलिए यह मेरे लिए XML-लेआउट ऐप की तुलना में थोड़ा अधिक कठिन था, लेकिन मैंने इसे किया। और JavaFX की तुलना में इसका उपयोग करना बहुत आसान है।

जबकि थीम समर्थन (यानी डार्क मोड) अभी भी थोड़ा मुश्किल है, एक इंटरैक्टिव लेआउट बनाना बहुत आसान है, और विंडो का आकार बदलते समय कुछ फ़्लिकर को छोड़कर, सब कुछ ठीक काम करता है।

यदि आप ऐप को जांचना चाहते हैं, तो स्रोत कोड यहां उपलब्ध है GitHub. बस इसे IntelliJ या Android Studio के साथ आयात करें और यह चलने के लिए तैयार हो जाना चाहिए।


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

आप इसके बारे में क्या सोचते हैं? क्या यह जांचने लायक है और शायद अन्य उपलब्ध ढांचों के बजाय इसका उपयोग भी किया जाए? मुझे बताओ!

विशेष रुप से प्रदर्शित छवि क्रेडिट: GitHub पर JetBrains