कैसे हम सिम्बियन और MeeGo के लिए Toozla मोबाइल गाइड विकसित किया

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

आवश्यक विकास विकल्प को चुनना, हम तीन संभावित रास्तों से आगे बढ़े।

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

दूसरा तरीका Qt SDK 1.0 का उपयोग करना है। यह देवकिट 2010 के मध्य में जारी किया गया था और यह Qt 4.6.3 पर आधारित था। सिम्बियन एसडीके के विपरीत, इस विकल्प ने विकास को आसान बनाने (विशेषकर मोबाइल उपकरणों के लिए एपीआई के साथ काम करना) को पार करना और क्रॉस-प्लेटफॉर्म पर भरोसा करना संभव बना दिया। इस समाधान के नुकसान में कम डिवाइस कवरेज (केवल सिम्बियन v1 और सिम्बियन v3) थे और, फिर भी, आधुनिक UI विकसित करने में कुछ जटिलता थी।

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

अंत में, हमने चुना, ज़ाहिर है, एसडीके 1.1 - मुख्य रूप से क्यूएमएल नियंत्रण और यूआई लिखने में आसानी के कारण।

छोटी-मोटी कठिनाइयाँ



एप्लिकेशन के आर्किटेक्चर को निम्नानुसार चुना गया था: पूरे इंजन को C ++ में लिखा गया है, और QML का उपयोग केवल UI बनाने के लिए किया जाता है। इंजन और इंटरफ़ेस के बीच संबंध स्लॉट, सिग्नल और डेटा बाइंडिंग के माध्यम से कार्यान्वित किया जाता है।

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

उस समय एप्लिकेशन डिजाइन के दिशानिर्देशों के साथ, एक गड़बड़ भी थी, लेकिन निष्पक्षता में यह ध्यान दिया जाना चाहिए कि फिलहाल नोकिया ने इस समस्या को हल कर लिया है।

सिम्युलेटर


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

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

नोकिया स्टोर में टोज़ला की उपस्थिति के तुरंत बाद, कंपनी को MeeGo को एप्लिकेशन पोर्ट करने का प्रस्ताव मिला। क्यों नहीं? दरअसल, पोर्टिंग बहुत तेज और दर्द रहित थी। मुख्य लागत डिजाइनर द्वारा खर्च किए गए थे, जिन्हें पूरे इंटरफ़ेस को एक अलग स्क्रीन रिज़ॉल्यूशन पर फिर से बनाना था। मेरे हिस्से के लिए, पोर्टिंग वास्तव में कुछ क्यूएमएल फाइलों के अपने स्वयं के सेट और # ifdefs के उन स्थानों पर नीचे आ गई है जहां देशी एपीआई कहा जाता है। एक प्रोग्रामर के रूप में मेरे लिए श्रम की लागत 2 दिन है, जो एन 9 के लिए डाउनलोड की संख्या से पूरी तरह से उचित है।

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

Source: https://habr.com/ru/post/In134202/


All Articles