mobile - कोडनाम एक काम कैसे करता है?




cross-platform codenameone (2)

कोडेनामे ने पोर्टेबिलिटी के लिए बहुत संतुलित दृष्टिकोण लिया। मैं एक व्यावहारिक टिप्पणी जोड़ना चाहता हूं।

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

लेकिन, यदि आप मंच-स्वतंत्र रूप और अनुभव (जो कि आज की प्रवृत्ति का प्रकार है) चुनते हैं, तो आप कोडेनामेमोन के डिफ़ॉल्ट घटक सेट द्वारा किसी भी तरह से प्रतिबंधित नहीं हैं: यह स्विंग की तरह है जो इसके क्रॉस-प्लेटफ़ॉर्म लुक और महसूस करता है (" धातु "आदि)। कौन सा अच्छा है।

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

यह एंड्रॉइड पर भी तेज़ लग सकता है, क्योंकि, डाल्विक / आर्ट का उपयोग करते समय, यह एंड्रॉइड देशी यूआई का उपयोग नहीं करता है जो सीएन 1 की तुलना में भारी है। यह रनटाइम में गतिशील UI निर्माण को तेज़ी से बना सकता है, जो कि अच्छा है।

सीएन 1 दृष्टिकोण के सबसे मजबूत बिंदुओं में से एक इसका एमुलेटर (डेस्कटॉप जावाएफएक्स कैनवास पर लागू) है जिसका उपयोग आप सॉफ्टवेयर विकसित करने के लिए करते हैं। एम्यूलेटर मोबाइल प्लेटफार्मों के समान यूआई कोड और पोर्टेबिलिटी एपीआई का उपयोग करता है और आपको डिबगिंग के लिए पसंद के आईडीई का उपयोग करने देता है। यह जल्दी से पुनरारंभ होता है, और एंड्रॉइड की तुलना में संपादित-संकलन-चक्र चक्र बहुत टिकाऊ है। कौन सा अच्छा है।

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

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

इसके अलावा, ग्राफिक्स प्रदर्शन की वर्तमान स्थिति उप-इष्टतम है; यदि आपको स्क्रीन पर टेक्स्ट का गुच्छा मिलता है, तो आप आसानी से 16 एमसीसीसी तरल एनीमेशन / रीपेंट टाइम सीमा को याद करेंगे, इसे डबल-बफरिंग के आसपास काम किया जा सकता है, लेकिन इसकी सीमा भी है। सौभाग्य से, मुख्य प्लेटफार्मों पर कार्यान्वयन में अनुकूलन के लिए अभी भी जगह है, उम्मीद है कि वे इसे बेहतर बनाएंगे।

कुल मिलाकर, कोडेनामेमोन के कई वर्गों के लिए एक क्रॉस-प्लेटफार्म ढांचे के रूप में अच्छी जगह है; आपको उनकी सेवाओं में भी एक मूल्य मिल सकता है।

मैं कई मोबाइल प्लेटफार्मों के विकास के लिए संभावित विकल्प हैं, और कोडेनामे वन मिला है, जो एचटीएमएल / सीएसएस / जेएस या स्क्रिप्टिंग भाषाओं की बजाय जावा का उपयोग लिंगुआ फ्रैंका के रूप में करता है।

जो मुझे नहीं मिला वह यह कैसे काम करता है। क्या यह आईओएस और विन 7 के लिए एप्लिकेशन के साथ एक जेवीएम बंडल करता है, और एंड्रॉइड में डाल्विक का उपयोग करता है? क्या यह स्रोत कोड को देशी में अनुवाद करता है, और क्या हमारे पास इस स्रोत कोड तक पहुंच है? क्या कोई जादू नहीं है, क्योंकि वे "समझौता नहीं" का वादा करते हैं? अज्ञेयवादी जावा कोडिंग करते समय मुझे किन सीमाओं को अवगत कराया जाना चाहिए?

प्रीपेप्टिव स्ट्राइक: यह कोडनाम वन के बारे में एक सवाल है, इस बारे में नहीं कि मुझे किस क्रॉस-प्लेटफॉर्म को चुनना चाहिए या यदि मुझे मूल जाना चाहिए या मुझे वेब जाना चाहिए।


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

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

आईओएस कोडनाम पर एक निर्मित और खुला ParparVM जो एक बहुत रूढ़िवादी वीएम है। ParparVM एक समवर्ती (गैर-अवरुद्ध) जीसी की विशेषता है और यह पूरी तरह से जावा / सी में लिखा गया है। इसका प्रभावी अर्थ यह है कि एक एक्सकोड प्रोजेक्ट जेनरेट किया गया है और बिल्ड सर्वर पर संकलित किया गया है, इसलिए यह प्रभावी ढंग से है कि आपने ऐप्पल द्वारा किए गए परिवर्तनों के लिए मूल ऐप को संभाला है और इस प्रकार "भविष्य का सबूत" है। आईओएस में हाल ही में 64 बिट और बिटकोड परिवर्तनों के साथ-साथ ParparVM को उन परिवर्तनों का अनुपालन करने के लिए कोई संशोधन की आवश्यकता नहीं है।

पिछले कोडनाम में एक ने देशी कोड को बहुत ही समान तरीके से उत्पन्न करने के लिए XMLVM का उपयोग किया था, लेकिन XMLVM समाधान कोडेनामे वन की ज़रूरतों के लिए बहुत सामान्य था।

आईओएस बिल्डों को एक्सकोड (आधिकारिक ऐप्पल बिल्ड टूल) का उपयोग करके क्लाउड में मैक पर संकलित और हस्ताक्षरित किया जाता है। यह उन्हें ऐप्पल से वर्तमान / भविष्य में परिवर्तनों के साथ संगत बनाता है और आईओएस को लक्षित करते समय डेवलपर्स को विंडोज / लिनक्स का उपयोग करने की अनुमति देता है। आप आईओएस को ParparVM की संगतता के बारे में और अधिक पढ़ सकते हैं।

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

विंडोज 10 डेस्कटॉप और मोबाइल सपोर्ट के लिए कोडनाम एक यूडब्ल्यूपी (यूनिवर्सल विंडोज प्लेटफ़ॉर्म) को लक्षित करने के लिए iKVM का उपयोग करता है और कोडडेम वन गिथब रिपोजिटरी में मूल iKVM कोड में परिवर्तनों को खोलता है

ध्यान दें कि यूडब्लूपी बिल्ड क्लाउड में विंडोज 10 मशीनों पर किए जाते हैं जिससे डेवलपर्स को मैक / लिनक्स या विंडोज़ के पुराने संस्करणों का उपयोग करने की अनुमति मिलती है जब देशी विंडोज ऐप्स बनाते हैं ...

एंटरप्राइज़ स्तर के ग्राहकों पर उपलब्ध जावास्क्रिप्ट निर्माण लक्ष्य स्थिर रूप से अनुवाद करने के लिए TeaVM का उपयोग करते हैं। टीएवीएम ऐप को तोड़ने के बजाय जावास्क्रिप्ट का उपयोग करके थ्रेडिंग के लिए समर्थन प्रदान करता है। जटिल यूआई कोडनाम एक का समर्थन करने के लिए एचटीएमएल 5 कैनवास एपीआई का उपयोग करता है जो अनुप्रयोगों के निर्माण के लिए पूर्ण लचीलापन की अनुमति देता है।

डेस्कटॉप के लिए कोडनाम एक बनाता है javafxpackager का उपयोग करता है, क्योंकि क्लाउड में मैक और विंडोज मशीन दोनों उपलब्ध हैं, प्लेटफार्म विशिष्ट प्रकृति javafxpackager की समस्या नहीं है।

जोडेनाम वन स्टैंड आउट करता है वह यूआई को ले जाने वाला दृष्टिकोण है जहां यह "लाइटवेट आर्किटेक्चर" का उपयोग करता है ताकि यूआई को सभी प्लेटफॉर्म पर सहजता से काम करने की अनुमति मिल सके और लगभग पूरी तरह से जावा में विकसित किया जा सके। यह "लाइटवेट्स" के बीच "हेवीवेट" विजेट को एम्बेड करने की क्षमता से बढ़ाया जाता है। आप इस ब्लॉग पोस्ट में इसके बारे में और जान सकते हैं। ध्यान दें कि इस समय peering कुछ सुधारों से गुज़र रहा है और अब लेयरिंग जैसे अधिक विस्तृत उपयोग का समर्थन करता है।

एक लाइटवेट घटक पूरी तरह से जावा में लिखा जाता है, यह डेवलपर्स को सिमुलेटर और जीयूआई बिल्डर में सटीक रूप से एप्लिकेशन का पूर्वावलोकन करने की अनुमति देता है।

कोडेनामे वन मूल गेमिंग एपीआई के अधिकांश प्लेटफ़ॉर्म जैसे आईओएस पर ओपनजीएल ईएस का उपयोग करके ड्राइंग करके तेजी से प्रदर्शन प्राप्त करता है।

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

इस उत्तर के लेखक एफवाईआई शाई अल्मोग कोडेनामे वन के सीईओ हैं।