कोरोना, फोनगैप, टाइटेनियम के बीच तुलना


310

मैं एक वेब डेवलपर हूं और मैं अपने वेब उत्पादों को आईफोन में स्थानांतरित करना चाहता हूं। उत्पादों में से एक Google मैप्स की तरह है: फ़ोन स्क्रीन पर मानचित्र दिखाएं, आप मानचित्र को ड्रैग या आकार बदल सकते हैं और कुछ जानकारी देख सकते हैं जिन्हें हम मानचित्र में जोड़ते हैं।

मुझे पता है कि कुछ ऐसी तकनीकें हैं जो आपको देशी आईफोन ऐप विकसित करने के लिए HTML, CSS और जावास्क्रिप्ट का उपयोग करने में सक्षम बनाती हैं। मैंने कुछ की पहचान की है:

क्या अन्य, समान उत्पाद हैं? उनके बीच क्या अंतर हैं? मैं कौन सा चुनूँ?


1
एडोब फ्लेक्स भी है, जो जून 2011 तक iPhone ऐप जनरेट कर सकता है। adobe.com/products/flex
neoneye

1
इसकी जांच - पड़ताल करें। यहाँ दोस्त एक बिंदु तुलना है। savagelook.com/blog/portfolio/…
हिकमत खान

जवाबों:


368

मैंने केवल शीर्ष पर अधिकतर वोट किए गए उत्तर पर टिप्पणी करने के उद्देश्य से स्टैकओवरफ़्लो के साथ पंजीकरण किया। बुरी बात यह है कि स्टैकओवरफ्लो नए सदस्यों को टिप्पणी पोस्ट करने की अनुमति नहीं देता है। इसलिए मुझे इस टिप्पणी को एक उत्तर की तरह देखना होगा।

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

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

  2. टाइटेनियम आपके html, css या जावास्क्रिप्ट कोड को "देशी बिट्स" में संकलित नहीं करता है। वे निष्पादन योग्य बंडल के लिए संसाधनों के रूप में पैक किए जाते हैं, बहुत कुछ एक एम्बेडेड छवि फ़ाइल की तरह। जब अनुप्रयोग चलता है, तो इन संसाधनों को UIWebView नियंत्रण में लोड किया जाता है और वहां चलाया जाता है (जैसे जावास्क्रिप्ट, देशी बिट्स नहीं, बिल्कुल)। जावास्क्रिप्ट-से-देशी-कोड (या टू-ऑब्जेक्टिव-सी) संकलक जैसी कोई चीज नहीं है। यह PhoneGap में भी उसी तरह किया जाता है। वास्तुकला की दृष्टि से, ये दोनों रूपरेखा बहुत समान हैं।

अब, क्या वे अलग हैं? हाँ। सबसे पहले, टाइटेनियम जावास्क्रिप्ट से अधिक मोबाइल फोन कार्यों को पूरा करके PhoneGap की तुलना में अधिक सुविधा संपन्न प्रतीत होता है। सबसे अधिक स्पष्ट रूप से, PhoneGap जावास्क्रिप्ट में कई (यदि कोई हो) देशी UI घटकों को उजागर नहीं करता है। दूसरी ओर, टाइटेनियम में एक व्यापक यूआई एपीआई है जिसे देशी यूआई नियंत्रण बनाने और नियंत्रित करने के लिए जावास्क्रिप्ट में बुलाया जा सकता है। इन यूआई एपीआई का उपयोग करते हुए, एक टाइटेनियम ऐप एक फोनगैप ऐप की तुलना में अधिक "देशी" दिखाई दे सकता है। दूसरा, PhoneGap टाइटेनियम से अधिक मोबाइल फोन प्लेटफार्मों का समर्थन करता है। PhoneGap API अधिक सामान्य हैं और विभिन्न प्लेटफार्मों जैसे कि iPhone, Android, ब्लैकबेरी, सिम्बियन, इत्यादि पर उपयोग किए जा सकते हैं। टाइटेनियम मुख्य रूप से iPhone और Android को कम से कम अभी के लिए लक्षित कर रहा है। इसके कुछ एपीआई प्लेटफॉर्म विशिष्ट हैं (जैसे iPhone UI APIs)।

इसलिए, यदि आपके ऐप के लिए आपकी चिंता इसे अधिक "देशी" दिखने की है, तो टाइटेनियम एक बेहतर विकल्प है। यदि आप अपने ऐप को किसी अन्य प्लेटफॉर्म पर आसानी से "पोर्ट" करने में सक्षम होना चाहते हैं, तो PhoneGap बेहतर होगा।

अपडेट किया गया 8/13/2010: मिकी के सवाल पर एक टाइटेनियम कर्मचारी के जवाब के लिए लिंक।

अपडेट किया गया 12/04/2010: मैंने इस पोस्ट को अपनी जानकारी को चालू रखने के लिए एक वार्षिक समीक्षा देने का फैसला किया। एक वर्ष में कई चीजें बदल जाती हैं, जिससे कुछ जानकारी प्रारंभिक पोस्ट में पुरानी हो जाती है।

सबसे बड़ा बदलाव टाइटेनियम से आया। इस साल की शुरुआत में, ऐप्पेलरेटर ने टाइटेनियम 1.0 जारी किया, जो वास्तुकला के दृष्टिकोण से अपने पिछले संस्करणों से काफी आगे निकल गया। 1.0 में, UIWebView नियंत्रण अब उपयोग में नहीं है। इसके बजाय, आप किसी भी UI फ़ंक्शन के लिए टाइटेनियम एपीआई कहते हैं। इस बदलाव का मतलब है कुछ बातें:

  1. आपका ऐप UI पूरी तरह से देशी हो जाता है। आपके ऐप में कोई और वेब यूआई नहीं है क्योंकि देशी टाइटेनियम एपीआई आपकी सभी यूआई जरूरतों को नियंत्रित करता है। "क्रॉस-प्लेटफ़ॉर्म नेटिव यूआई" फ्रंटियर पर अग्रणी द्वारा टाइटेनियम बहुत सारे क्रेडिट का हकदार है। यह प्रोग्रामर देता है जो देशी UI के लुक और फील को पसंद करते हैं लेकिन आधिकारिक प्रोग्रामिंग भाषा को एक विकल्प के रूप में नापसंद करते हैं।

  2. आप अपने ऐप में HTML या CSS का उपयोग नहीं कर पाएंगे, क्योंकि वेब दृश्य चला गया है। (नोट: आप अभी भी टाइटेनियम में वेब दृश्य बना सकते हैं। लेकिन कुछ टाइटेनियम विशेषताएं हैं जो आप वेब दृश्य में लाभ ले सकते हैं।) टाइटेनियम क्यू एंड ए: HTML और CSS का क्या हुआ?

  3. आप JQuery जैसे लोकप्रिय JS पुस्तकालयों का उपयोग नहीं कर पाएंगे जो DOM ऑब्जेक्ट के अस्तित्व को मानते हैं। आप अपनी कोडिंग भाषा के रूप में जावास्क्रिप्ट का उपयोग करना जारी रखते हैं। लेकिन अगर आप टाइटेनियम 1.0 में वेब प्रोग्रामर के रूप में आते हैं तो यह बहुत ही एकमात्र वेब तकनीक है जिसका आप उपयोग कर सकते हैं।

टाइटेनियम वीडियो: टाइटेनियम 1.0 में नया क्या है।

अब, क्या टाइटेनियम 1.0 आपके जावास्क्रिप्ट को "देशी बिट्स" में संकलित करता है? नंबर डेवलपर इस डेवलपर ब्लॉग के साथ इस मुद्दे पर आखिरकार साफ हो गया: टाइटेनियम गाइड्स प्रोजेक्ट: जेएस एनवायरनमेंट। हम प्रोग्रामर विपणन विभाग में उन लोगों की तुलना में अधिक वास्तविक लोग हैं, हम नहीं हैं? :-)

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

PhoneGap स्वयं को वेब तकनीकों, जैसे HTML, CSS और जावास्क्रिप्ट पर आधारित करता है। ऐसा नहीं लगता है कि PhoneGap के पास जावास्क्रिप्ट को देशी UI सुविधाओं को पुल करने की कोई योजना है जैसा कि टाइटेनियम कर रहा है। जबकि वेब यूआई अभी भी प्रदर्शन और देशी नज़र और महसूस पर देशी UI से पीछे है, इस तरह के अंतर को तेजी से बंद किया जा रहा है। वेब प्रौद्योगिकियों में दो रुझान हैं जो प्रदर्शन के मामले में मोबाइल वेब UI के लिए उज्ज्वल सुविधा सुनिश्चित करते हैं:

  1. जावास्क्रिप्ट इंजन एक दुभाषिया से एक आभासी मशीन की ओर बढ़ रहा है। जावास्क्रिप्ट तेजी से निष्पादन के लिए देशी कोड में संकलित है। सफारी जेएस इंजन: गिलहरी चरम

  2. सीपीयू पर निर्भरता से जीपीयू त्वरण का उपयोग करने के लिए वेब पेज प्रतिपादन। पेज ट्रांजीशन और 3 डी एनिमेशन जैसे ग्राफिक सघन कार्य हार्डवेयर त्वरण की मदद से बहुत अधिक सहज हो जाते हैं। Chrome में GPU त्वरित कंपोज़िटिंग

ऐसे सुधार जो डेस्कटॉप ब्राउज़रों से उत्पन्न हुए हैं, उन्हें मोबाइल ब्राउज़रों तक शीघ्रता से पहुँचाया जा रहा है। वास्तव में, आईओएस 3.2 और एंड्रॉइड 2.0 के बाद से, मोबाइल वेब दृश्य नियंत्रण बहुत अधिक प्रदर्शन और एचटीएमएल 5 अनुकूल हो गया है। मोबाइल वेब का भविष्य इतना आशाजनक है कि इसने शहर के एक बड़े बच्चे को आकर्षित किया है: JQuery ने हाल ही में अपने मोबाइल वेब ढांचे की घोषणा की है। JQuery मोबाइल के साथ यूआई गैजेट्स और फोनगैप की सुविधा प्रदान करने के साथ, उन्होंने दो संयुक्त रूप से मेरी राय में एक संपूर्ण मोबाइल वेब प्लेटफ़ॉर्म बनाया है।

मुझे स्नेहा टच को एक अन्य मोबाइल वेब यूआई गैजेट ढांचे के रूप में भी उल्लेख करना चाहिए । स्नेहा टच संस्करण 1.0 को हाल ही में एक दोहरे लाइसेंसिंग मॉडल के तहत जारी किया गया था जिसमें GPLv3 शामिल है। Sencha टच PhoneGap के साथ ठीक वैसे ही काम करता है जैसे JQuery मोबाइल करता है।

यदि आप एक GWT प्रोग्रामर (मेरे जैसे) हैं, तो आप GWT मोबाइल की जाँच कर सकते हैं , GWT के साथ मोबाइल वेब ऐप बनाने के लिए एक ओपन सोर्स प्रोजेक्ट है। इसमें एक PhoneGap GWT आवरण शामिल है जो GWT में PhoneGap के उपयोग को सक्षम करता है।


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

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

9
जैसा कि टाइटेनियम और "देशी बिट्स" के रूप में, मुझे लगता है कि मेरी गलती उनकी साइट पर यह पढ़ रही थी - ऐप्पलरेटर के लिए फ्रंट पेज पर सही है: "वे महान भागते हैं क्योंकि हम चोटी के प्रदर्शन के लिए टाइटेनियम को मूल कोड के लिए संकलित करते हैं।" शायद आपको उन्हें लिखना चाहिए ताकि उन्हें पता चल सके कि वे गलत हैं। इसे देखें: tinyurl.com/yzlzvk5
Rory Blyth

6
अधिक जानकारी के लिए, टाइटेनियम अक्सर पूछे जाने वाले प्रश्न देखें - पहला विषय, "क्या ये मोबाइल वेबप या देशी मोबाइल अनुप्रयोग हैं" इस मुद्दे को पूरी तरह से कवर करते हैं। मैं यहां एक उद्धरण देना चाहता हूं, लेकिन मुझे लगता है कि आप इसे सीधे कंपनी से प्राप्त करेंगे, जैसा कि वे कर रहे हैं, मुझे विश्वास है, अधिकारियों ने अपने उत्पाद पर: smallurl.com/ya9topg
Rory Blyth

4
डेनिस, महान जवाब के लिए धन्यवाद। क्या आप अभी भी टाइटेनियम के साथ विकास कर रहे हैं? क्या आप अभी टिप्पणी कर सकते हैं कि 1.7 उतरा है?
पॉलएम

193

जो मैंने इकट्ठा किया है, उससे दोनों के बीच कुछ अंतर हैं:

  • PhoneGap मूल रूप से अभी भी वेब ऐप्स के लिए देशी रैपर बनाता है । यह जो भी YourYourPlatformIs प्रोजेक्ट है, आप इसे बनाते हैं, और परिनियोजित करते हैं। यदि हम iPhone के बारे में बात कर रहे हैं (जो कि मैं अपना समय बिताता हूं), तो यह वेब ऐप लॉन्चर बनाने से बहुत अलग नहीं है (एक शॉर्टकट जो अपना स्प्रिंगबोर्ड आइकन प्राप्त करता है, इसलिए आप इसे पसंद कर सकते हैं ( जैसे ) एक मूल एप्लिकेशन)। "एप्लिकेशन" अभी भी html / js / etc है। और एक होस्ट किए गए ब्राउज़र नियंत्रण के अंदर चलता है। PhoneGap जो परे प्रदान करता है, वह जावास्क्रिप्ट और देशी डिवाइस APIs के बीच एक पुल है। तो, आप PhoneGap API के खिलाफ JavaScript लिखते हैं, और PhoneGap तब उचित संबंधित देशी कॉल करता है। इस संदर्भ में, यह है एक सादे पुराने वेब अनुप्रयोग की तैनाती से अलग।

  • टाइटेनियम स्रोत देशी बिट्स के लिए संकलित हो जाता है। यानी आपका html / js / etc। बस एक परियोजना से जुड़े नहीं हैं और फिर एक वेब ब्राउज़र नियंत्रण के अंदर होस्ट किया जाता है - वे मूल एप्लिकेशन में बदल जाते हैं। उदाहरण के लिए, उदाहरण के लिए, आपके ऐप का इंटरफ़ेस देशी UI घटकों से बना होगा । देशी ऐप के बिना देशी दिखने और महसूस करने के तरीके हैं, लेकिन ... अच्छी तरह से ... क्या बुरा सपना है जो आमतौर पर निकलता है।

दोनों समान हैं कि आप अपने सभी सामान को विशिष्ट वेब तकनीकों (HTML / js / css / blah blah blah) का उपयोग करते हुए लिखते हैं, और आपको कस्टम जावास्क्रिप्ट एपीआई के माध्यम से मूल कार्यक्षमता तक पहुंच प्राप्त होती है।

लेकिन, फिर से, PhoneGap ऐप्स (फोनगैप्स? मुझे नहीं पता ... यह एक बेवकूफ नाम है? यह कहना आसान है - मुझे पता है कि) वेब ऐप्स के रूप में अपना जीवन शुरू करते हैं और वेब ऐप के रूप में अपना जीवन समाप्त करते हैं। IPhone पर, आपका html / js / etc। बस UIWebView नियंत्रण के अंदर निष्पादित किया जाता है, और PhoneGap जावास्क्रिप्ट APIs आपके js कॉल्स को मूल API में रूट किया जाता है।

टाइटेनियम ऐप देशी ऐप बन जाते हैं - वे अभी वेब देव तकनीक का उपयोग करके विकसित किए गए हैं।

इसका वास्तव में क्या मतलब है ?

  1. एक टाइटेनियम एप्लिकेशन जाएगा देखने के एक 'असली' अनुप्रयोग की तरह है क्योंकि, अंततः, यह है एक 'असली' अनुप्रयोग।

  2. एक PhoneGap एप्लिकेशन की तरह एक वेब अनुप्रयोग एक ब्राउज़र नियंत्रण में होस्ट किया जा रहा है क्योंकि, अंततः, यह दिखेगा है एक वेब अनुप्रयोग एक ब्राउज़र नियंत्रण में होस्ट किया जा रहा।

जो आपके लिए सही है?

  • यदि आप वेब देव कौशल का उपयोग करके मूल एप्लिकेशन लिखना चाहते हैं, तो टाइटेनियम आपका सबसे अच्छा दांव है।

  • यदि आप वेब देव कौशल का उपयोग करके एक ऐप लिखना चाहते हैं जिसे आप वास्तविक रूप से कई प्लेटफार्मों (iPhone, Android, ब्लैकबेरी, और जो कुछ भी वे शामिल करने का निर्णय लेते हैं) पर लागू कर सकते हैं, और यदि आप मूल प्लेटफ़ॉर्म सुविधाओं के एक सबसेट तक पहुंच चाहते हैं (GPS, एक्सेलेरोमीटर, आदि) एक एकीकृत जावास्क्रिप्ट एपीआई के माध्यम से, PhoneGap शायद वही है जो आप चाहते हैं।

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

इसका उत्तर है: क्योंकि आप अपने PhoneGapp को App Store में जमा कर सकते हैं और इसके लिए शुल्क ले सकते हैं। आपको वह लॉन्चर आइकन भी मिलता है, जिससे उपयोगकर्ता को आपके ऐप के बारे में भूलना मुश्किल हो जाता है (मैं ऐप आइकन की तुलना में बुकमार्क के बारे में भूलने की अधिक संभावना है)।

आप निश्चित रूप से अपने वेब-होस्ट किए गए वेब ऐप तक पहुंच के लिए शुल्क ले सकते हैं, लेकिन ऐसा करने के लिए कितने लोग वास्तव में प्रक्रिया से गुजर रहे हैं? ऐप स्टोर के साथ, मैं एक ऐप चुनता हूं, "खरीदें" बटन पर टैप करें, एक पासवर्ड दर्ज करें, और मैं काम कर रहा हूं। यह स्थापित करता है। बाद में, मैं इसका उपयोग कर रहा हूं। अगर मुझे किसी और के मोबाइल वेब ट्रांजेक्शन इंटरफेस का इस्तेमाल करना था, तो इसका मतलब है कि मेरा नाम, पता, फोन नंबर, सीसी नंबर और अन्य चीजें जिन्हें मैं टैप नहीं करना चाहता हूं, उन्हें टैप करना है, मैं निश्चित रूप से ' t इससे गुजरो। इसके अलावा, मुझे विश्वास है कि Apple - मुझे विश्वास है कि स्टीव जॉब्स मेरी जानकारी को लॉग इन नहीं करने वाले हैं और फिर मेरे सीसी के लिए शरारती पत्रिका सदस्यता का एक गुच्छा चार्ज करते हैं।

वैसे भी, इस तथ्य के अलावा कि वेब देव तकनीक शामिल है, फोनगैप और टाइटेनियम बहुत अलग हैं - केवल सतही तुलनात्मक होने के बिंदु तक।

मुझे वेब ऐप्स से नफरत है, इसके द्वारा, और यदि आप आईट्यून्स ऐप स्टोर की समीक्षा पढ़ते हैं, तो उपयोगकर्ता उन्हें स्पॉट करने में बहुत अच्छे हैं। मैं कोई भी नाम नहीं बताऊंगा, लेकिन मेरे पास अपने फोन पर कुछ "ऐप" हैं जो कचरे की तरह दिखते हैं और चलते हैं, और यह इसलिए है क्योंकि वे वेब ऐप हैं जो UIWebView इंस्टेंस के अंदर होस्ट किए जाते हैं। अगर मैं एक वेब ऐप का उपयोग करना चाहता हूं, तो मैं सफारी खोलूंगा और आपको पता होगा, एक पर नेविगेट करें। मैंने एक iPhone खरीदा क्योंकि मैं ऐसी चीजें चाहता हूं जो iPhone-y हैं। सफारी के अंदर एक snazzy Google वेब ऐप का उपयोग करने में मुझे कोई समस्या नहीं है, लेकिन अगर एक वेब ऐप को मूल निवासी के रूप में प्रस्तुत करके Google ने बस स्प्रिंगबोर्ड पर एक बुकमार्क छाप दिया है, तो मुझे धोखा महसूस होगा।

मुझे जाना है अब। मेरी प्रेमिका ने अपने चेहरे पर उस कंप्यूटर-फॉर-थ्री-सेकंड का उपयोग किया है।


22
जवाब के साथ समस्या यह है कि यह ज्यादातर गलत है। नीचे देखें डेनिसजॉन्ग का जवाब।
jbwiv

9
@jbwiv - आपकी टिप्पणी के साथ समस्या यह है कि यह ज्यादातर डेनिसजेज के उत्तर पर आधारित है, जो ज्यादातर गलत है। मेरी प्रतिक्रियाएँ नीचे देखें। आगे भ्रम की स्थिति से बचने के लिए, मैं आपको सुझाव दूंगा कि दोनों उत्पादों के लिए आधिकारिक प्रलेखन पर एक नज़र डालें और मेरे पोस्ट को पूरा पढ़ें । आपका बहुत बहुत धन्यवाद।
रोरी बेल्थ

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

2
@Matthew - इसके अलावा, इस व्यक्ति है नई चीजों की कोशिश करने के लिए तैयार। यह आपके पसंद का तरीका नहीं हो सकता है, लेकिन यह अभी भी नया है। आपको अभी भी iPhone के विकास के बारे में सीखना है (UI दिशानिर्देशों पर डॉक्स पढ़ें), किसी को कुछ पूरा करने की कोशिश करने से दूर करने का कोई औचित्यपूर्ण कारण नहीं है क्योंकि आप इसमें मूल्य नहीं देखते हैं। उदाहरण के लिए, मुझे मशरूम से नफरत है, लेकिन दूसरे लोगों को उन्हें खाने से रोकने की कोशिश न करें। मैं समझता हूं कि वे उसी तरह से मशरूम पसंद करते हैं जैसे मैं केसर से प्यार करता हूं, और मुझे पता है कि मैं नहीं चाहता कि कोई भी मुझसे भगवा लेने की कोशिश करे क्योंकि वे इसे पसंद नहीं करते हैं।
रोरी ब्लिथ

1
हाँ, लेकिन अगर आप एक सच्चे वेब प्रौद्योगिकी जादूगर हैं, तो मुझे यकीन है कि कोई भी आपके "वेब ऐप" को महसूस नहीं कर पाएगा, यह वास्तव में एक मूल ऐप नहीं है। ऐसे मामलों में जहां यह स्पष्ट है कि एक ऐप UIWebView में लिपटा हुआ "वेब ऐप" है, तो इसका मतलब है कि निर्माता ने पर्याप्त समय नहीं लिया या इसे उच्च गुणवत्ता वाला बनाने के लिए पर्याप्त देखभाल नहीं की।
trusktr

62

मैं Android / iPhone के विकास में एक पाठ्यक्रम ले रहा हूं और हमने टाइटेनियम के साथ 8 सप्ताह बिताए (पूर्णकालिक नहीं) (संस्करण टाइटेनियम 1.4.2 था और समय नवंबर 2010 के आसपास था)। यहाँ मेरा अनुभव है।

iPhone Android दोहरी लक्ष्यीकरण

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

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

चूँकि इसका कहीं उल्लेख नहीं किया गया है, इसलिए आपको पहले एक प्लेटफ़ॉर्म पर, फिर दूसरे प्लेटफ़ॉर्म पर ट्रायल और एरर प्रोग्रामिंग करने की आवश्यकता है। परीक्षण और त्रुटि से मेरा मतलब है कि इस तरह के एक सरल ऐप को प्राप्त करने में लगभग दो दिन लगेंगे क्योंकि एनीमैप दूसरे प्लेटफॉर्म पर काम कर रहा है। आपको (android) तब ... या यदि (iphone) ... आपके कोड में ...

डाउनलोड करें और सेटअप करें

आपको पत्र के निर्देशों का पालन करना चाहिए। जावा 64 बिट का उपयोग करने की कोशिश न करें। यह किचनसिंक 1.4.0 डेमो एप्लिकेशन को संकलित नहीं करेगा। (1.3 कार्य ठीक है!) आपको सी ड्राइव पर सीधे फाइलें डालनी चाहिए क्योंकि जब तक वे लंबे नहीं हो जाते तब तक बाहरी प्रोग्राम सभी कमांड लाइन मापदंडों को प्राप्त नहीं करने वाले बाहरी प्रोग्राम को बनाएंगे। (हालांकि छोटे कार्यक्रमों के लिए ठीक है) 1/3 बार, टूलचिन बस बंद हो जाता है और आपको फिर से 'लॉन्च' प्रेस करना होगा। तब यह शायद काम करेगा ... बहुत अविश्वसनीय। सिम्युलेटर स्टार्टअप पर नहीं मिलेगा और फिर आपको बस Ctrl + Alt + Delete और पुनः प्रयास के साथ adb.exe को मारना होगा।

नेटवर्क कनेक्शन

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

एपीआई

CSS, HTML और jQuery इसकी तुलना में एक हवा है। टाइटेनियम किसी अन्य पुराने GUI API जैसा दिखता है, और आपको हर एक बटन / फ़ील्ड / आदि के लिए कुछ गुण सेट करने की आवश्यकता होती है। फ़ील्ड को गलत करना केवल आसान है, उन सभी गुणों को याद रखना जो सेट करने की आवश्यकता है? क्या आपने इसे सही जगह पर बड़े अक्षरों में लिखा था? (क्योंकि यह संकलक द्वारा पकड़ा नहीं गया है, लेकिन यदि आप उस भाग का परीक्षण करने के लिए भाग्यशाली हैं तो एक रनटाइम त्रुटि के रूप में देखा जाएगा)

जब आप किसी नियंत्रण के ऊपर कोई अन्य दृश्य जोड़ते हैं या GUI में कहीं और क्लिक करते हैं, तो टाइटेनियम चीजों को बस तोड़ देते हैं।

प्रलेखन

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

रसोई के पानी का नल

डेमो आवेदन। क्या मैंने उल्लेख किया है कि यह संकलित नहीं करता है यदि आप इसे अपने ग्रहण प्रोजेक्ट फ़ोल्डर में रखते हैं क्योंकि मार्ग बहुत लंबा हो जाता है? रूट फ़ोल्डर में अपने C ड्राइव पर रखा जाना चाहिए। मैं वर्तमान में एक प्रतीकात्मक लिंक (mklink / J ...) का उपयोग करता हूं

अप्राकृतिक तरीके

लेबल को विश्वसनीय रूप से बदलने के लिए आपको लेबल.setText ('हैलो वर्ल्ड') के रूप में चीजों का उपयोग करना चाहिए, लेकिन यह बिल्कुल भी प्रलेखित नहीं है।

डिबगिंग

Titanium.API.info ('डीबग करने के लिए प्रिंटआउट एकमात्र तरीका है');

संपादन

एपीआई किसी भी अच्छे प्रारूप में उपलब्ध नहीं हैं इसलिए आप ग्रहण में सहायता आदि के साथ साधारण कोड-पूर्ति नहीं कर सकते हैं। आप्तना कृपया मदद करें!

हार्डवेयर

ऐसा लगता है कि कंपाइलर / टूल्स को मल्टीथ्रेड नहीं किया जाता है, इसलिए फास्ट हार्डड्राइव वाला फास्ट कंप्यूटर बहुत जरूरी है, क्योंकि आपको बहुत परीक्षण और त्रुटि करनी चाहिए। क्या मैंने खराब प्रलेखन का उल्लेख किया है? तुम वहाँ सब कुछ बाहर की कोशिश करनी चाहिए क्योंकि तुम उस पर भरोसा नहीं कर सकते!

कुछ सकारात्मक बातें

  • खुला स्त्रोत
  • पिछली परियोजनाओं से मैंने खुद को कभी भी बंद स्रोत का उपयोग करने का कभी वादा नहीं किया है क्योंकि आप बस चीजों को ठीक से घंटों और मैनपावर फेंककर ठीक नहीं कर सकते हैं। महत्वपूर्ण जब आप परियोजना में देर से हैं और एक कठिन समय सीमा के लिए देने की जरूरत है। यह खुला स्रोत है और मैं यह देखने में सक्षम हूं कि टूल चेन क्यों टूटती है और वास्तव में इसे ठीक भी करती है।

  • Bugdatabase

  • यह भी खुला है। आप बस देख सकते हैं कि आपका अकेला नहीं है और परीक्षण और त्रुटि पर खर्च किए गए 4 घंटे के बजाय एक वर्कअराउंड करें।

  • समुदाय

  • अपने मंचों पर सक्रिय होने लगता है।

कीड़े

  • टाइटेनियम 1.4 थ्रेडसेफ़ नहीं है । इसका मतलब है कि यदि आप थ्रेड्स का उपयोग करते हैं (url का उपयोग करें: createWindow कॉल में प्रॉपर्टी) और प्रोग्राम्स जैसे थ्रेड काम कर रहे हैं और घटनाओं को डेटा के साथ आगे और पीछे भेजते हैं तो आप बहुत सारे, बहुत ही अजीब सामानों में खो जाते हैं - खोए हुए हैंडलर, खो जाते हैं विंडोज़, बहुत सारे ईवेंट, बहुत कम ईवेंट, आदि। यह सब समय पर निर्भर है, कोड की पंक्तियों को अलग-अलग क्रम में लगाने से आपका एप्लिकेशन क्रैश या ठीक हो सकता है। एक अन्य file.js में एक विंडो जोड़ने से आपका app.js निष्पादन टूट जाता है ... यह टाइटेनियम में आंतरिक डेटास्ट्रक्चर को भी नष्ट कर देता है, क्योंकि वे कभी-कभी पार्टल में आंतरिक डेटास्ट्रक्चर को अपडेट कर सकते हैं, कुछ और के साथ बस बदले हुए मूल्य को ओवरराइट कर सकते हैं।

टाइटेनियम के साथ मुझे जो भी समस्याएं हुई हैं उनमें से ज्यादातर OSE जैसे रियलटाइम सिस्टम पर मेरे बैकग्राउंड से आती हैं, जो सैकड़ों थ्रेड्स, इवेंट्स और मैसेज पास करने का समर्थन करते हैं। यह टाइटेनियम 1.4 में काम करने वाला है, लेकिन यह केवल मज़बूती से ऐसा नहीं करता है।

  • जावास्क्रिप्ट (जो मेरे लिए नया है) रनटाइम त्रुटियों पर चुपचाप मर जाता है। इसका मतलब यह भी है कि छोटे और सामान्य बग, जैसे कि चर नाम को याद करना या नल-पॉइंटर में पढ़ना क्रैश नहीं होता है, जब ऐसा होना चाहिए तो आप इसे डीबग कर सकते हैं। उदाहरण के लिए, आपके कार्यक्रम के कुछ हिस्सों ने सिर्फ काम करना बंद कर दिया है, उदाहरण के लिए एक इवेंटहैंडलर, क्योंकि आपने एक चरित्र को गलत / गलत बताया है।

  • फिर हमारे पास टाइटेनियम में अधिक सरल बग हैं, जैसे कुछ पैरामीटर फ़ंक्शन में काम नहीं कर रहे हैं (जो कम से कम एंड्रॉइड प्लेटफॉर्म पर काफी आम है)।

  • परीक्षण और त्रुटि डिबग चक्र की गति कई कंप्यूटरों पर टाइटेनियम डेवलपर चलाती है, मैंने देखा कि अड़चन हार्डड्राइव है। एक लैपटॉप पर एक एसएसडी ड्राइव 4200 आरपीएम ड्राइव की तुलना में बिल्ड चक्र को 3-5 गुना तेज बनाता है। डेस्कटॉप पर, RAID 1 (स्ट्रिपिंग मोड) में दोहरी ड्राइव होने से बिल्ड लगभग 25 प्रतिशत तेजी से एकल ड्राइव पर कुछ हद तक सीपीयू के साथ बनाता है और यह एसएसडी ड्राइव लैपटॉप को भी धड़कता है।

सारांश

  • इस थ्रेड में टिप्पणियों से प्लेटफ़ॉर्म की संख्या के लिए एक लड़ाई लगती है, जैसे कि यह ऐप के लिए एक उपकरण प्रदान कर सकता है। एपीआई की संख्या प्रमुख विक्रय-बिंदु प्रतीत होती है।

यह बहुत चमकता है जब आप इसका उपयोग करना शुरू करते हैं। यदि आप खुले बगट्रैक को देखते हैं तो आप देखते हैं कि बग की संख्या निश्चित बग की संख्या की तुलना में तेजी से बढ़ रही है। यह आमतौर पर एक संकेत है कि डेवलपर्स बग्स की संख्या को कम करने पर ध्यान केंद्रित करने के बजाय अधिक कार्यक्षमता जोड़ते रहते हैं।

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

अपने बारे में: wxPython के साथ दो वर्षों के लिए पायथन का उपयोग किया गया। (वह GUI असंगत है, लेकिन कभी भी इस तरह नहीं टूटता। यह मैं हो सकता है कि जावास्क्रिप्ट और टाइटेनियम द्वारा उपयोग किए गए थ्रेडिंग मॉडल को नहीं समझा है, लेकिन मैं उनके खुले चर्चा मंचों के अनुसार अकेला नहीं हूं, GUI ऑब्जेक्ट अचानक गलत संदर्भ का उपयोग कर रहे हैं / अद्यतन नहीं कर रहा है .. ???) इससे पहले कि मैं मोबाइल उपकरणों के लिए सी और एएसएम प्रोग्रामिंग में एक पृष्ठभूमि है।

[संपादित करें - बग के साथ जोड़ा गया भाग और थ्रेड सुरक्षित नहीं है] [संपादित करें - अब इसके साथ एक महीने + के लिए काम किया है, ज्यादातर पीसी पर लेकिन कुछ ओएस एक्स पर भी। जोड़ा iPhone और Android दोहरी लक्ष्यीकरण। जोड़ा गया परीक्षण और त्रुटि डिबग चक्र की गति।]


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

रिलीज़ 1.5 अब बाहर हो गया है और कहा जाता है कि यह एंड्रॉइड प्लेटफॉर्म के लिए प्रमुख रीराइट है। मैं इसका परीक्षण नहीं करूंगा क्योंकि मुझे अब मूल Android विकास सीखने की आवश्यकता है।
user288299

रिलीज़ 1.5 अब बाहर हो गया है और कहा जाता है कि यह एंड्रॉइड प्लेटफॉर्म के लिए प्रमुख रीराइट है। मैं इसका परीक्षण नहीं करूंगा क्योंकि हम देशी Android विकास को सीखने के लिए आगे बढ़ चुके हैं। जैसा कि आज हमें देशी एंड्रॉइड के जीवनचक्र के बारे में पढ़ाया गया था, मेरा मानना ​​है कि कुछ समस्याओं के कारण मुझे चर सामग्री के दूसरी बार प्रदर्शित होने के कारण टाइटेनियम द्वारा जीवन चक्र के ऑनपॉज () स्थिति से पहले राज्य को नहीं बचाने के कारण हुआ था। डेवलपर .android.com/guide/topics/fundamentals.html#lcycles । कॉलिंग टाइटेनियम
.ap.MapView.hide

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

25

कोरोना SDK (Ansca मोबाइल) Lua को अपनी कोडिंग भाषा के रूप में उपयोग करता है। लुआ के बारे में अधिक जानने के लिए lua.org देखें।

जब हम आगे वेब एकीकरण और देशी-यूआई तत्वों को जोड़ने की योजना बनाते हैं, तो हमारा ध्यान वेब-आधारित प्रौद्योगिकियों के विपरीत ग्राफिक्स-गहन अनुप्रयोगों, जैसे खेल विकास, पर होगा। दूसरे शब्दों में, हम पूरी तरह से जावास्क्रिप्ट / HTML / CSS में कोरोना एप्लिकेशन लिखने वाले लोगों की कल्पना नहीं करते हैं।


क्या आपके पास देशी UI स्क्रिप्टिंग के लिए कोई योजना या समय पैमाना है। मैंने लुआ के साथ काफी काम किया है और मैं वास्तव में कोरोना से प्यार करना चाहता हूं। गैर खेल विकास के लिए टाइटेनियम थोड़ा आगे लगता है।
यूरोक २

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

ऐसा लगता है कि कोरोना ऐप के बजाय गेम विकसित करने के लिए उपयुक्त है, क्या यह सही है?
एंटीकैफेव

18

मैं अभी एक सप्ताह से टाइटेनियम के साथ काम कर रहा हूं और मुझे लगता है कि मुझे इसकी कमजोरी के बारे में अच्छा अनुभव है।

1) यदि आप उम्मीद करते हैं कि आप कई प्लेटफार्मों पर एक ही कोड का उपयोग करते हैं तो शुभकामनाएँ! आपको बैकग्राउंडगार्ड जैसा कुछ दिखाई देगा और जब तक आपको पता नहीं चलेगा, तब तक आश्चर्यचकित रह जाएंगे जब तक कि एंड्रॉइड वर्जन इसका समर्थन नहीं करता। फिर एक ढाल छवि का उपयोग करने के लिए वापस करना है, साथ ही साथ कोड को आसान बनाने के लिए दोनों संस्करणों के लिए इसका इस्तेमाल कर सकते हैं?

2) बहुत सारे अजीब व्यवहार, टाइटेनियम एंड्रॉइड एसडीके पर आपको यह समझने की आवश्यकता है कि "भारी" विंडो क्या है बस काम करने के लिए बैक बटन, या यहां तक ​​कि बेहतर ओरिएंटेशन इवेंट ट्रैकिंग। यह नहीं है कि एंड्रॉइड प्लेटफ़ॉर्म वास्तव में कैसा है, इसका सिर्फ यह है कि कैसे टाइटेनियम अपने एपीआई काम करने की कोशिश करता है।

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

4) कीड़े .... बहुत सारे कीड़े हैं और उन्हें सूचित किया जाएगा, महीनों तक बैठे रहें, कुछ दिनों में ठीक हो जाएं। मुझे आश्चर्य है कि वे भी एक काले बेरी मोबाइल एसडीके को जारी करने की योजना बना रहे हैं जब एंड्रॉइड के साथ कई अन्य समस्याएं हैं।

5) टाइटेनियम Iphone बनाम टाइटेनियम एंड्रॉइड जावास्क्रिप्ट इंजन पूरी तरह से अलग हैं। Android संस्करण पर आप दूरस्थ जावास्क्रिप्ट फ़ाइलों को डाउनलोड कर सकते हैं, शामिल कर सकते हैं और mootools, jquery और इतने पर पुस्तकालयों का उपयोग कर सकते हैं। मैं स्वर्ग में था जब मुझे यह पता चला क्योंकि मुझे अपना एंड्रॉइड ऐप संकलित नहीं रखना था। Android APK इंस्टॉलेशन प्रक्रिया में इतना समय लगता है! Iphone में से कोई भी संभव नहीं है, iPhone संस्करण में बहुत तेज जावास्क्रिप्ट इंजन है।

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

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

एक वेब ऐप क्यों नहीं? प्रवेश स्तर के बाजार में एंड्रॉइड फोन एक वेबव्यू उत्पन्न करने के लिए अपनी धीमी गति से धीमा होता है और बहुत अधिक मेमोरी का उपभोग करता है जिसे आप अधिक जटिल तर्क करने के लिए उपयोग कर सकते हैं।


10

हाल ही में Appcelerator और PhoneGap के और अधिक गहन विश्लेषण में: http://savagelook.com/blog/portfolio/a-deeper-look-at-appcelerator-and-phonegap

और यहां पर और भी अधिक विस्तार से बताया गया है कि वे कैसे अलग-अलग प्रोग्राम करते हैं: http://savagelook.com/blog/portfolio/phonegap-is-web-based-appcelerator-is-pure-javascript


9

टाइटेनियम में देशी मानचित्रक का समर्थन किया गया है


8

HTML5 विगेट्स बनाने के लिए iPhone विजेट्स की तरह दिखना एक बात है, लेकिन उन्हें समान रूप से अच्छा प्रदर्शन करना एक और मामला है। एचटीएमएल 5 एनिमेशन (यहां तक ​​कि सादे दृश्य संक्रमण) का प्रदर्शन, लंबी सूचियों को स्क्रॉल करना, इशारों को जवाबदेही चिपचिपा और झटकेदार महसूस करना। एक iPhone उपयोगकर्ता अंतर को नोटिस करेगा।

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

अब मैं अनुमान लगाता हूं कि मैं देशी ऐप्स के साथ रहूंगा।


7

Rhomobile रोड्स ( http://rhomobile.com/products/rhodes ) PhoneGap के दृष्टिकोण के समान है, लेकिन इसके साथ एकमात्र ढांचा है:

  1. एक मॉडल व्यू कंट्रोलर पैटर्न (जैसा कि अधिकांश वेब फ्रेमवर्क प्रदान करते हैं)
  2. ऑब्जेक्ट रिलेशनल मैनेजर
  3. सभी लोकप्रिय स्मार्टफ़ोन के लिए समर्थन (विंडोज फोन 7 सहित)
  4. एक होस्ट की गई विकास सेवा (न केवल होस्ट की गई बिल्ड): http://rhohub.com
  5. RhoStudio IDE में एक पूर्ण डिबगर और SDK- कम एमुलेटर
  6. सिंक्रनाइज़ ऑफ़लाइन डेटा के लिए समर्थन

6

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


5

PhoneGap की मेरी समझ यह है कि वे बहुत से iPhone API को Javascript API प्रदान करते हैं।

वेब डेवलपर पृष्ठभूमि के लिए टाइटेनियम आसान लगता है। बेसिक टैब व्यू एप्लिकेशन बनाने के लिए यह एक सरल एक्सएमएल फाइल है और फिर कंटेंट एरिया में सब कुछ HTML / JS द्वारा नियंत्रित किया जाता है। मुझे यह भी पता है कि टाइटेनियम कुछ फ्रेमवर्क (विशेष रूप से स्थान की जानकारी, फोन आईडी, आदि तक पहुंच) के लिए कुछ जावास्क्रिप्ट का उपयोग प्रदान करता है।

अद्यतन: टाइटेनियम ने उनके ढांचे के संस्करण 0.8 में मैप्स एपीआई को जोड़ा।


प्रति "टाइटेनियम एक वेब डेवलपर पृष्ठभूमि के लिए आसान लगता है।" बयान। आप मूल अधिकार से आसान मतलब है? जैसा कि PhoneGap टाइटेनियम की तुलना में वेब डेवलपर पृष्ठभूमि वाले किसी व्यक्ति के साथ अधिक प्रतीत होता है ...
Serhiy

4

आपको ऑब्जेक्टिव c सीखना चाहिए और देशी ऐप्स को प्रोग्राम करना चाहिए। इन बातों पर भरोसा न करें जो आपको लगता है कि जीवन को आसान बना देगा। Apple ने सुनिश्चित किया है कि सबसे आसान तरीका उनके मूल उपकरण और भाषा का उपयोग करना है। जावास्क्रिप्ट की आपकी 100 पंक्तियों के लिए मैं कोड की 3 पंक्तियों में या तत्व के आधार पर कोई भी कोड नहीं कर सकता। कुछ ट्यूटोरियल देखें - यदि आप जावास्क्रिप्ट को समझते हैं तो उद्देश्य c कठिन नहीं है। Workarounds दुखी हैं और सेब आप पर प्लग खींच सकते हैं किसी भी समय वे चाहते हैं।


3
Apple प्लग को खींच सकता है ... यही मैं संबंधित हूँ
मिकी शाइन

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

6
Apple के लिए एक अच्छा समाधान यह होगा कि वे अपने स्वयं के ObjC विकल्प प्रदान करें। उन ऐप्स के लिए कुछ जो नियंत्रण के स्तर की आवश्यकता नहीं है ObjC आपको देता है। विशेष रूप से एंटरप्राइज़ ऐप्स के लिए जहां संदर्भ-गिनती और संपत्ति विशेषताओं के बजाय देवता को कार्यक्षमता पर ध्यान केंद्रित करना चाहिए। या कम से कम Xcode और संकलक के साथ अधिकांश को स्वचालित करें। मुझे एक स्विच दें जो कुछ मान्यताओं को बनाने की अनुमति देता है और इसे कोड में बाईपास किया जा सकता है जहां देवता चुनता है (जैसे: डिफ़ॉल्ट रूप से मेरी वस्तु के गुणों को बनाए रखना और @synthesize करना - और "वास्तविक" ओबजेक 2.0 की तरह, मेरे बैकिंग लोकल बनाएं। मेरे लिए)। आदि
रोली बेलीथ

2
मूल रूप से आप जो कह रहे हैं, आइए हम C # में IPhone ऐप्स लिखते हैं। :)
जस्टिन

3

आपके द्वारा बताए गए समाधानों में, उनमें से कोई भी आपको OS 3.0 में पेश किए गए MapKit ढांचे तक सीधी पहुंच प्रदान नहीं करता है।

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

संपादित करें: टाइटेनियम में अब MapKit का समर्थन है


धन्यवाद। लेकिन क्या PhoneGap और Titanium के बीच कोई आवश्यक अंतर है?
मिकी शाइन

1
MapKit देशी रूप से काफी समय से टाइटेनियम में उपलब्ध है।
झाइनी

@ झाई: धन्यवाद। मैंने इस उत्तर को प्रतिबिंबित करने के लिए संशोधित किया है कि टाइटेनियम का अब समर्थन है (यह सितंबर में लिखा गया था जब यह नहीं था)
रैप्ट्रीच

1

मैंने कोरोना की कोशिश की है। यह अच्छा था जब तक मुझे पता नहीं चला कि यह एमपी 3 ऑडियो का समर्थन नहीं करता। इसलिए, मैं वहीं रुक गया। मुझे लगता है कि अगर मैं वास्तव में एक iPhone ऐप डेवलपर बनना चाहता हूं तो मुझे obj c सीखना चाहिए। सभी मैं एक ऐसा ऐप बनाना चाहता था जिसमें रेडियो स्टेशनों की एक सूची हो और आप उन पर क्लिक करें जो इसे खेलना शुरू करते हैं।


2
कोरोना एमपी 3 फाइल्स ( डेवलपर.
anscamobile.com/reference/index/mediaplaysound
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.