MonoTouch और Objective-C के बीच कैसे तय करें? [बन्द है]


273

एक स्थानीय .Net घटना में मोनो पर आज एक सत्र के माध्यम से बैठने के बाद, iPhone विकास के लिए एक विकल्प के रूप में मोनो टच का उपयोग 'स्पर्श' किया गया था। C # और .Net में बहुत सहज होने के नाते, यह मोनो स्टैक के कुछ विचित्रता के बावजूद, एक आकर्षक विकल्प की तरह लगता है। हालाँकि, चूंकि मोनोऑच की लागत $ 400 है, इसलिए मैं कुछ हद तक फटा हुआ हूं अगर यह iPhone विकास के लिए जाने का रास्ता है।

किसी को भी मोनोऑच और ऑब्जेक्टिव-सी के साथ विकसित होने का अनुभव है, और यदि मोनोऑच के साथ विकसित हो रहा है, तो उद्देश्य-सी सीखने की तुलना में बहुत सरल और तेज है, और बदले में $ 400 के लायक है?


13
मुझे लगता है कि Apple पर अपने देव उपकरणों के प्रतिबंध को कम करने के बाद से मोनोटोच के बारे में बहुत सारी टिप्पणियां आईओएस पर चलने में सक्षम नहीं हैं। देखें: Apple.com/pr/library/2010/09/09statement.html
sivabudh

जवाबों:


520

मैंने इस प्रश्न (और इस पर भिन्नताएं) को हाल ही में देखा है। मुझे क्या आश्चर्य है कि लोग कितनी बार जवाब देते हैं, लेकिन कितने कम जवाब देते हैं

मेरी प्राथमिकताएं हैं (मैं दोनों स्टैक का आनंद लेता हूं), लेकिन यह वह जगह है जहां ज्यादातर "उत्तर" गलत होने लगते हैं। यह इस बारे में नहीं होना चाहिए कि मैं क्या चाहता हूं (या कोई और क्या चाहता है)।

यहाँ बताया गया है कि मैं मोनोऑउट के मूल्य का निर्धारण कैसे करूँगा - मैं स्पष्ट रूप से वस्तुनिष्ठ नहीं हो सकता, लेकिन मुझे लगता है कि यह बहुत ही उत्साहपूर्ण है:

  • यह मनोरंजन या व्यवसाय के लिए है? यदि आप इस क्षेत्र में परामर्श प्राप्त करना चाहते हैं, तो आप अपना $ 399 बहुत जल्दी वापस कर सकते हैं।

  • क्या आप प्लेटफॉर्म को अंदर-बाहर सीखना चाहते हैं, या क्या आप इसके लिए "सिर्फ" लिखना चाहते हैं?

  • क्या आप .Net को इतना पसंद करते हैं कि एक अलग देव स्टैक का उपयोग करने से आपके लिए यह मजेदार होगा? फिर से, मैं दोनों स्टैक (Apple और मोनो) को पसंद करता हूं, लेकिन मेरे लिए मोनोऑच अनुभव को और अधिक मजेदार बनाता है। मैंने Apple के टूल का उपयोग बंद नहीं किया है, लेकिन यह मुख्य रूप से है क्योंकि मैं वास्तव में दोनों स्टैक का आनंद लेता हूं । मुझे आईफोन से प्यार है, और मुझे प्यार है। उस मामले में, मेरे लिए, मोनोऑट एक नो-ब्रेनर था।

  • क्या आप सी के साथ काम करने में सहज महसूस करते हैं? मेरा मतलब ऑब्जेक्टिव-सी नहीं है, लेकिन सी - यह मायने रखता है क्योंकि ऑब्जेक्टिव-सी सी है । यह एक अच्छा, फैंसी, फ्रेंडली OO वर्जन है, लेकिन अगर पॉइंटर्स आपको हेबी-जीब देते हैं, तो मोनोऑच आपका दोस्त है। और उन naysayers की बात न मानें जो सोचते हैं कि आप एक dev wuss हैं यदि ऐसा होता है कि आपको पॉइंटर्स (या C, आदि) पसंद नहीं हैं। मैं आईबीएम रोम BIOS पॉकेट संदर्भ की एक प्रति के साथ घूमता था, और जब मैं असेंबली लिख रहा था और अपने कंप्यूटर को मज़ेदार वीडियो मोड में मजबूर कर रहा था और उनके लिए अपने स्वयं के फ़ॉन्ट रेंडरिंग बिट्स लिख रहा था और (कोडी कचरा) विंडोिंग सिस्टम, मैंने नहीं किया था ' टी लगता है कि QuickBasic देवों wusses थे। मैं थाएक क्विकबेसिक देव (बाकी के अलावा)। कभी भी माचिस की तीली में न दें। यदि आपको C पसंद नहीं है, और यदि आपको पॉइंटर्स पसंद नहीं हैं, और यदि आप मैन्युअल मेमोरी प्रबंधन से जितना संभव हो उतना दूर रहना चाहते हैं (और, निष्पक्ष होना, तो यह ObjC में बिल्कुल भी बुरा नहीं है), फिर। .. मोनो टच। और इसके लिए कोई भी दोष न लें।

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

  • कोई XML काम कर रहा है? MonoTouch। अवधि।

  • स्ट्रिंग हेरफेर? तारीख में हेरफेर? एक लाख अन्य छोटी चीजें जो हमने .Net की सब कुछ-एंड-द-किचन-सिंक फ्रेमवर्क के साथ उपयोग की हैं? MonoTouch।

  • वेब सेवाएं? MonoTouch।

  • सिंथेटिक, वे दोनों अपने फायदे हैं। ऑब्जेक्टिव-सी अधिक वर्बोज़ होता है जहाँ आपको इसे लिखना होता है । आप खुद को C # के साथ कोड लिखते हुए पाएंगे कि आपको ObjC के साथ लिखना नहीं होगा, लेकिन यह दोनों तरह से जाता है। यह विशेष विषय एक पुस्तक भर सकता है। मैं सी # सिंटैक्स पसंद करता हूं, लेकिन ऑब्जेक्टिव-सी पर मेरी प्रारंभिक-इस-अन्य-दूसरी प्रतिक्रिया पर पहुंचने के बाद, मैंने इसे काफी आनंद लेना सीखा है। मैं बातचीत में इसका थोड़ा मजाक करता हूं (यह उन देवों के लिए अजीब है, जो सी # / जावा / आदि के लिए इस्तेमाल होते हैं।), लेकिन सच्चाई यह है कि मेरे दिल में एक ऑब्जेक्टिव-सी आकार का स्पॉट है जो मुझे खुश करता है।

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

  • क्या आपको लगता है कि नई भाषाओं और प्लेटफार्मों को सीखना मज़ेदार है? यदि हां, तो iPhone के पास बहुत कुछ है, और Apple के स्टैक से आपको अपने कम्फर्ट-ज़ोन से बाहर निकलने की संभावना है - जो, कुछ देवों के लिए, मज़ेदार है (हाय - मैं उन देवों में से एक हूँ - मैं इसके बारे में मज़ाक करता हूँ और देता हूँ Apple एक कठिन समय है, लेकिन मुझे Apple के टूल के माध्यम से iPhone विकास सीखने में बहुत मज़ा आया है)।

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

इसलिए ... कि मैं के रूप में के रूप में उद्देश्य के बारे में हो सकता है। यह एक छोटी सूची है जो आप अपने आप से पूछ सकते हैं, लेकिन यह एक प्रारंभिक बिंदु है।

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

लेकिन इससे कहीं ज्यादा है। जिन लोगों ने मोनो टैच का उपयोग नहीं किया है, वे वहां रुकते हैं - "यह एक रैपर ब्ला ब्ला ब्ला है" - यह मोनोक्रॉट नहीं है।

MonoTouch आपको उस चीज़ तक पहुँच प्रदान करता है, जो CocoaTouch आपको प्रदान करता है, जबकि आपको (एक सबसेट) की पहुँच प्रदान करता है। .NET को ऑफ़र करना पड़ता है, एक IDE कुछ लोग (मैं उनमें से एक हूं) के साथ अधिक सहज महसूस करता हूं, इंटरफ़ेस बिल्डर के साथ बेहतर एकीकरण। , और यद्यपि आपको मेमोरी-मैनेजमेंट के बारे में पूरी तरह से भूलने की ज़रूरत नहीं है, आपको लेवे की एक अच्छी डिग्री मिलती है।

यदि आप निश्चित नहीं हैं, तो Apple के स्टैक को पकड़ो (यह मुफ़्त है), और मोनो-आउट eval स्टैक को पकड़ो (यह मुफ़्त है)। जब तक आप ऐप्पल के देव कार्यक्रम में शामिल नहीं होते हैं, तब तक दोनों केवल सिम्युलेटर के खिलाफ चलेंगे, लेकिन आपको यह पता लगाने में मदद करने के लिए पर्याप्त है कि क्या आप एक से दूसरे को पसंद करते हैं, और संभव है कि आपके लिए मोनोऑच $ 399 है।

और zealots की बात नहीं मानते - वे वही होते हैं जो उस तकनीक का इस्तेमाल नहीं करते हैं जिसके खिलाफ वे रेलिंग करते हैं :)


50
वाह, रोरी, इस तरह के विस्तार से मेरे सवाल का जवाब देने के लिए समय निकालने के लिए धन्यवाद। जो मैं बता सकता हूं कि आप केवल एक ही हैं, जिन्होंने दोनों विकल्पों का उपयोग किया है, जो कि मैं एक उत्तर की तलाश में था। मैं निश्चित रूप से वहाँ से जाने की कोशिश करूँगा। BTW, मैंने आपको सबसे हाल ही में SO पॉडकास्ट पर सुना, है ना? अच्छी चीज़। एक बार फिर धन्यवाद!
jamesaharvey

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

4
@ स्टेफ़न - यह कहना सही नहीं होगा कि "लापता" क्या है - मैं कोको के साथ काम कर सकता हूं। यह एपीआई के बारे में अधिक है। .Net के साथ तार, दिनांक, एक्सएमएल आदि के साथ काम करना बहुत आसान है। यदि आप इन कामों को करने के .Net तरीके के साथ-साथ उनके लिए मोनोऑटच के समर्थन की सीमा से परिचित हैं, तो - यदि आपने इस पर ध्यान नहीं दिया है, तो आपको इसकी जाँच करनी चाहिए। मेरे कहने का मतलब यह नहीं है कि कुछ चीजें हैं जो आप कोको के साथ नहीं कर सकते हैं, लेकिन कई चीजें हैं जो बहुत अधिक आसानी से नेट के साथ की जाती हैं। पारसिंग बोर्ड भर में आसान है - तिथि गणित बोर्ड भर में आसान है - आदि
रोरी बेलीथ

3
इसके अलावा एमटी के साथ आईफोन / आईपैड में आपके स्वयं के कोड के पुन: उपयोग का मुद्दा है। हमारे पास हमारे सर्वर और डेस्कटॉप समकक्षों पर चलने वाले कुछ क्रिप्टो कोड, और व्यापार तर्क कोड हैं, जो हम सिर्फ MT के साथ recompile कर सकते हैं और हमारे iOS क्लाइंट ऐप में उपयोग कर सकते हैं। यह कुछ परियोजनाओं के लिए महत्वपूर्ण हो सकता है।
मोनोमैन

2
यह भी ध्यान देने योग्य तथ्य यह है कि, हालांकि लाइसेंस की लागत $ 400 है, एक रखरखाव सदस्यता भी है जिसे आपको हर साल (स्पष्ट कारणों के लिए) नवीनीकृत करना होगा - $ 250। यह शायद एक उचित मूल्य है, लेकिन अभी भी ध्यान में लायक है।
Amc_rtty

62

डेवलपर्स के इस पोस्ट में बहुत कुछ सुनने को मिला है जिसमें मोनोऑटच और ऑब्जेक्टिव-सी की कोशिश नहीं की गई है। ऐसा लगता है कि ज्यादातर उद्देश्य-सी डेवलपर्स हैं जिन्होंने कभी मोनोक्च की कोशिश नहीं की।

मैं स्पष्ट रूप से पक्षपाती हूं, लेकिन आप देख सकते हैं कि मोनोआच समुदाय क्या है:

http://xamarin.com

वहां आपको डेवलपर्स के कई लेख मिलेंगे, जो कि Objective-C और C # दोनों में विकसित हुए हैं।


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

हाँ! इसके अलावा, नए सी # 5.0 की कुछ विशेषताएं ऑब्जेक्टिव-सी की तुलना में सभी को अधिक मजेदार बनाती हैं।
हरसिमरनब २५'१४ को ०:१b

39

इसलिए, पिछले एक समान प्रश्न का मेरा उत्तर ऑब्जेक्टिव-सी सीखना है। (इसके अलावा, डिबगिंग समर्थन के बारे में मत भूलना)

यह संभवतः कुछ को रोक देगा, लेकिन ईमानदार होने के लिए, यदि आप कोई गंभीर विकास करने जा रहे हैं, तो आपको ऑब्जेक्टिव-सी सीखना चाहिए। IPhone विकास में ऑब्जेक्टिव-सी को नहीं जानना सिर्फ एक बाधा होगी। आप कई उदाहरणों को समझने में सक्षम नहीं होंगे; आपको मोनो के quirks से निपटना होगा जबकि यदि आपके पास ऑब्जेक्टिव-सी का काम करने का ज्ञान था तो आप प्लेटफ़ॉर्म डॉक्यूमेंटेशन से बहुत कुछ प्राप्त कर सकते हैं।

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

एक अन्य उपयोगकर्ता ने यह भी लिखा:


अब आपके लिए मोनोटॉक आसान है। लेकिन बाद में कठिन।

उदाहरण के लिए, क्या होता है जब नए बीज निकलते हैं, तो आपको परीक्षण करने की आवश्यकता होती है लेकिन किसी कारण से मोनोऑट को तोड़ना चाहिए?

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

एक और विचार यह है कि आप C # का उपयोग करना चाहते हैं क्योंकि आप Objective-C की तुलना में भाषा से अधिक परिचित हैं। लेकिन iPhone के लिए सीखने की अवस्था का अधिकांश हिस्सा ऑब्जेक्टिव-सी नहीं है, यह फ्रेमवर्क है - जिसे आपको C # के साथ भी कॉल करना होगा।

किसी भी प्लेटफ़ॉर्म के लिए, आपको उस प्लेटफ़ॉर्म का उपयोग करना चाहिए जो सीधे उस प्लेटफ़ॉर्म के डिज़ाइन दर्शन को प्रकट करता है - iPhone पर, वह है ऑब्जेक्टिव-सी। रिवर्स एंगल से इसके बारे में सोचें, अगर जीटीके में प्रोग्रामिंग करने के लिए इस्तेमाल किया जाने वाला लिनक्स डेवलपर विंडोज ऐप्स लिखना चाहता है, तो क्या आप गंभीरता से सिफारिश करेंगे कि वे सी # का इस्तेमाल न करें और जीटीके से चिपके रहें क्योंकि ऐसा करना उनके लिए "आसान" था?



12
आप, शायद अनजाने में, गलत तरीके से प्रस्तुत किए गए एमटी। यह बिल्कुल नहीं है - दूरस्थ रूप से नहीं - विन एप्लिकेशन लिखने के लिए GTK का उपयोग करने के लिए विनम्र। MT के बाइंडिंग CocoaTouch के लिए बहुत वफादार हैं। उन्होंने वास्तव में कुछ सीटी एपीआई सम्मेलनों में सुधार किया है। लेकिन आप अपने ऐप्स का उपयोग करके नहीं लिख रहे हैं, कहते हैं, सीटी पर एक विंडोज फॉर्म आधारित अमूर्तता है। MT के साथ MonoDevelop का Xcode की तुलना में IB के साथ बेहतर एकीकरण है (यदि आप इसे चाहते हैं), और आप अक्सर समान चीज़ों को आधे कोड या उससे कम में प्राप्त कर सकते हैं। बाइनरी आकार में सुधार किया जा रहा है, और उपकरण (बाध्यकारी जनरेटर, आदि) हर समय बेहतर हैं। एक मीट्रिक टन एप्लिकेशन है एक स्थानीय एप्लिकेशन।
रोरी ब्लिथ

7
उदाहरण देने के बजाय आप अपने (जाहिर तौर पर) MT-fanboy राय को खुद लेने की अपेक्षा कर सकते हैं, मैं इस तरह की चीजें कर सकता हूं (और यह सिर्फ फायदे का एक सबसेट है): एक पंक्ति के साथ एक संपत्ति बनाएं; हास्यास्पद सरणी के बिना दस्तावेज़ फ़ोल्डर के संदर्भ को पकड़ो (एक ऐप में एक डॉक्स फ़ोल्डर होता है, हमेशा एक ही स्थान पर - सभी अतिरिक्त कार्य इसे "खोजने" के लिए क्यों करते हैं?); कोको फ्रेमक (NSDate, कोई भी?) .Net फ्रेमवर्क का उपयोग करें; उद्यम एप्लिकेशन के लिए कमोडिटी कौशल का उपयोग करें; उचित एक्सएमएल बिट्स का उपयोग करें (मैं इसे प्यार करता हूं जब कोको चुपचाप पात्रों पर चुटकुले करता है और बस बंद हो जाता है - कोई दुर्घटना नहीं - बस बंद हो जाता है )।
रोरी ब्लिथ

8
यह कहते हुए कि मैं इसे हर चीज के लिए इस्तेमाल करूंगा। मुझे ObjC पसंद है और अभी भी इसका उपयोग करता हूं। और, यदि प्रदर्शन एक मुद्दा है, तो मेरे पास इस बात पर अधिक नियंत्रण है कि क्या हो रहा है। लेकिन ... ऐसे समय होते हैं जब एमटी अधिक समझ में आता है, और मुझे लगता है कि यह उद्यम विकास के लिए iPhone को एक व्यवहार्य विकल्प बनाने जा रहा है । हवा में एक चट्टान फेंको और तुम एक .Net देव को मारोगे। ज्यादातर कंपनियों में इन-हाउस ओबीजीसी देव नहीं होते हैं। और उद्यम कार्य के लिए, उन्हें नहीं करना चाहिए। वेब सेवाओं और DBs के साथ काम करने के लिए MT बहुत आसान है। आप वास्तव में एमटी के साथ कई तरह के ऐप लिख सकते हैं जिनमें आधा कोड ओबजेक में होगा।
रोरी ब्लिथ

8
अंत में (मैं जा सकता था, लेकिन मुझे लगता है कि मैं mt बिंदु बना रहा हूं), परिवर्तन करता है कि "ब्रेक" मोनोक्च शायद ओब्जेक ऐप को तोड़ने की संभावना है। एक बार जब आपका ऐप स्टोर में होता है, तो यह एक देशी iPhone ऐप है (जैसा कि यह होना चाहिए)। कॉल अंततः अलग नहीं होते हैं - ऐप्पल के स्टैक के साथ बनाए गए एप्लिकेशन के समान रनटाइम। अगर आपका एमटी ऐप रनवे के माहौल में बदलाव के कारण टूटता है, तो ऐसे में ओबीजीसी के साथ ऐप बनाए जाएंगे। और एमटी टीम इस सामान के शीर्ष पर रही है, अपडेट और बग-फिक्स को जल्दी से जारी करती है। एमटी के बाइंडिंग मैप्स सीटी के काफी करीब हैं कि किसी भी वास्तविक परेशानी की संभावना कम है। Aight - मैं अब चुप रहूँगा :)
Rory Blyth

27

मोनो का उपयोग करना एक बैसाखी नहीं है। कई चीजें हैं जो इसे iPhone OS में जोड़ती हैं। LINQ, WCF, एक सिल्वरलाइट ऐप, एक ASP.NET पेज, एक WPF ऐप, एक विंडोज फॉर्म ऐप, और एंड्रॉइड के लिए भी मोनो कोड है और यह विंडोज मोबाइल के लिए भी काम करेगा।

तो, आप उद्देश्य-सी लिखने में समय व्यतीत कर सकते हैं (आप कई अध्ययनों से देखेंगे जहां C # में सटीक समान नमूना कोड OC की तुलना में लिखने के लिए काफी कम है) और फिर अन्य प्लेटफार्मों के लिए यह सब अलग करें। मेरे लिए, मैंने मोनोआच को चुना क्योंकि मैं जो क्लाउड ऐप लिख रहा हूं उसमें बहुत सारे इंटरफेस होंगे, आईफोन उनमें से केवल एक है। क्लाउड से मोनोऑटच ऐप पर WCF डेटा स्ट्रीमिंग होने के बाद पागलपन सरल है। मेरे पास मुख्य पुस्तकालय हैं जो विभिन्न प्लेटफार्मों के बीच साझा किए जाते हैं और उसके बाद केवल iPhone / WinMobile / Android / SilverLight / WPF / ASP.NET तैनाती के लिए एक सरल प्रस्तुति परत लिखने की आवश्यकता है। सभी उद्देश्य-सी में इसे फिर से बनाना प्रारंभिक देव और रखरखाव दोनों के लिए समय की भारी बर्बादी होगी क्योंकि उत्पाद आगे बढ़ना जारी है क्योंकि सभी कार्यक्षमता को पुन: उपयोग करने के बजाय दोहराया जाना होगा।

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

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


19

मैंने बदला। मोनोटूच आइए मुझे कम से कम 3-4 बार तेजी से एप्लिकेशन लिखें (ओबज सी में मेरे पुराने 1 प्रति माह की तुलना में प्रति माह 4 ऐप्स)

बहुत कम टाइपिंग।

बस मेरा अनुभव।


2
"प्रति माह 4 ऐप्स" - जब गुणवत्ता की तरह मात्रा अधिक महत्वपूर्ण है। MT McDonalds की तरह है। लेकिन आपको XCode-Restaurant में बेहतर भोजन मिलता है।
netshark1000

2
हालांकि परिणाम अलग तरह से बोलते हैं, Rdio और iCircuit स्टीव जॉब्स द्वारा प्रदर्शित एमटी ऐप हैं। C # और MT को प्लंबिंग कार्य से छुटकारा मिलता है जो आपको करने के लिए बाध्य करता है।
इयान विंक

17

यदि यह एकमात्र ऐसा iPhone ऐप है जिसे आप कभी भी विकसित करेंगे, और आपके पास मैक अनुप्रयोगों को विकसित करने में भी शून्य रुचि है, तो मोनोक्च शायद लागत के लायक है।

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


6
यदि यह एकमात्र iPhone ऐप है जिसे आप कभी भी विकसित करेंगे, तो $ 99 / yr इसके लायक नहीं है।
दीना

मैक ऐप्स बनाने के लिए आप समान C # डिवेलपमेंट टूल्स का उपयोग कर सकते हैं। वास्तव में आप iPhone C # और Mac C # एप्लिकेशन के बीच साझा कर सकते हैं। मोनोआच को अब ज़मीरिन
इयान विंक

9

व्यक्तिगत रूप से मुझे लगता है कि आपके पास ऑब्जेक्टिव-सी सीखने का बेहतर समय होगा।

संक्षेप में:

  • "लर्निंग ऑब्जेक्टिव-सी" एक चुनौतीपूर्ण नहीं है जैसा कि आप सोच सकते हैं, आप पहले कुछ हफ्तों के बाद भी इसका आनंद ले सकते हैं
  • आप पहले से ही बहुत सी & # () {} के साथ "सी शैली" वाक्य रचना से परिचित हैं; हर जगह
  • Apple ने चीजों को दस्तावेज करने का बहुत अच्छा काम किया है
  • आप iPhone के साथ बातचीत करेंगे जिस तरह से Apple का इरादा था, जिसका अर्थ है कि आपको सीधे स्रोत से लाभ मिलेगा कुछ फ़िल्टर के माध्यम से नहीं।

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

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

2019 अपडेट: यह 7 साल बाद है। मैं अभी भी उसी तरह महसूस करता हूं अगर ऐसा नहीं है। निश्चित रूप से, 'डोमेन विशिष्ट भाषा' का उपयोग करने के लिए गलत शब्द हो सकता है, लेकिन मुझे अभी भी विश्वास है कि आप जिस प्लेटफ़ॉर्म के साथ काम कर रहे हैं उसके लिए सीधे लिखना बेहतर है और संगतता परतों और सार से यथासंभव बचें। यदि आप कोड के पुन: उपयोग और फिर से काम करने के बारे में चिंतित हैं, तो आमतौर पर आपके क्रॉस प्लेटफॉर्म ऐप को प्रदर्शन करने के लिए किसी भी कार्यक्षमता को बोलना संभवत: अन्य वेब तकनीकों के साथ पूरा हो सकता है।


12
सबसे पहले, सी # है नहीं एक "डोमेन विशिष्ट भाषा" - यह से दूर। यह एक कमोडिटी स्किल है। यह मोनोऑच के मूल्य का एक हिस्सा है। यह तर्क दिया जा सकता है कि (गलत और गलत तरीके से) कि ओबजैक एक डीएसएल है जिसमें अधिकांश देव (वित्त और विश्वविद्यालय प्रयोगशालाओं और बेसमेंट के बाहर) केवल ओएस एक्स या आईफोन के विकास के लिए इसका उपयोग करेंगे। लेकिन ऐसा नहीं है। C # की तरह, यह एक बहुमुखी भाषा है जो मूल रूप से आपको भाषा के बजाय फ्रेमवर्क पर ध्यान केंद्रित करने के लिए मौजूद है (मुझे लगता है कि हम वहां सहमत हैं)। लेकिन ध्यान रखें कि आपका ओबजेक कोड ऐप्पल अपडेट से टूट जाएगा। यह एक एमटी विशिष्ट मुद्दा नहीं है।
रोरी बेलीथ 20

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

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

2
मुझे लगता है कि एसएलएफ इस तथ्य से अवगत नहीं है कि मोनोटच सिर्फ सी # (जीसी के साथ) है जो ओबजेक लाइब्रेरीज़ + वैकल्पिक .NET लाइब्रेरीज़ से सीधे जुड़ता है। तो आप अभी भी सेब द्वारा दिए गए एपीआई का उपयोग करते हैं। लेकिन एक नट सिंटैक्स और कचरा संग्रह के साथ।
बासरत

4

दूसरों को पहले से ही कहा है कि अच्छी तरह से जोड़ने के लिए (अच्छी तरह से!): मेरी भावना यह है कि आप मूल रूप से कीड़े की संख्या को दोगुना कर रहे हैं जो आपको चिंता करने की ज़रूरत है, जो मोनोफोन में आईफोन ओएस में पहले से ही लोगों को जोड़ रहे हैं। नए OS संस्करणों के लिए अपडेट करना सामान्य से अधिक दर्दनाक होगा। यक, चारों तरफ।

एक ही सम्मोहक मामला जो मैं मोनो-पाउच के लिए देख सकता हूं, वह ऐसे संगठन हैं जिनके पास बहुत सारे और बहुत से # प्रोग्रामर और सी # कोड पड़े हुए हैं जो उन्हें आईफोन पर लाभ उठाने चाहिए । (दुकान की तरह जो $ 3500 पर भी नहीं झपकेगी।)

लेकिन खरोंच से शुरू होने वाले किसी के लिए, मैं वास्तव में इसे सार्थक या बुद्धिमान नहीं देख सकता।


-1: "अधिक कीड़े" से आपका क्या मतलब है? क्या मोनो और उद्देश्य-सी के बीच एक भयावह प्रतिबाधा बेमेल है?
जिम जी।

4

तीन शब्द: SQL को Linq

हाँ यह $ अच्छी तरह से लायक है।


4
ऑब्जेक्टिव-सी की की-वैल्यू बाइंडिंग और कोर डेटा के साथ आपको लिनक-टू-एसक्यूएल के समान कुछ मिलता है। एक ही नहीं। शायद बहुत शक्तिशाली नहीं है - लेकिन एक ही जमीन के बहुत सारे कवर। ध्यान दें कि कोर-डेटा वर्तमान में
मोनोऑट

क्या आईफोन ऐप के लिए लिनकिन एसक्यूएल भी प्रासंगिक है? यह SQLite के साथ काम करता है?
bpapa

1
और आप चाहते हैं कि आपके उपयोगकर्ता किसी नेटवर्क पर डेटा साझा करें। आप SQL लाइट के साथ क्या कर रहे हैं?
ब्रायन

"मोनोऑच हाइब्रिड .NET 2.0 और सिल्वरलाइट 2 एपीआई प्रोफाइल पर आधारित है" LINQ ऑब्जेक्ट्स को सपोर्ट करता है?
क्रिस एस

2

कुछ मैं जोड़ना चाहूंगा, भले ही एक स्वीकृत उत्तर है - जो यह कहना है कि Apple उन ऐप्स को अस्वीकार नहीं करेगा जिनके पास मोनो टच के साथ निर्मित होने के संकेत हैं?


उन्हें निश्चित रूप से करना चाहिए, और उन्हें फ्लैश ऐप्स को भी अस्वीकार करना चाहिए, लेकिन उनके ऐप स्टोर की शर्तों का उपयोग करने से पहले मत छोड़ो।
NSResponder

3
@bpapa - यह पूरी तरह से वैध चिंता है, लेकिन: 1) ऐप्स को अस्वीकार करने का कोई कारण नहीं है (उपयोगकर्ताओं को परवाह नहीं है कि उनके ऐप क्या लिखे हैं - वे खुद ऐप के बारे में परवाह करते हैं), और 2) मोनोटच में बहुत अधिक संभावनाएं हैं के लिए उद्यम विकास, और जब तक आप एक उद्यम देव खाता है, एप्पल आप अपने ऐप को वितरित से नहीं रोक सकता। साथ ही, Apple एकता के साथ निर्मित खेलों को स्वीकार करता है। अंततः, MT नियमों का पालन करता है। Apple की प्रक्रिया कई बार यादृच्छिक लगती है, लेकिन ... MT नियमों का पालन करता है: |
रोरी ब्लिथ

1
@bpapa - मुझे नहीं पता कि मैंने इस टिप्पणी को इतने लंबे समय तक कैसे याद किया, लेकिन: 1) ओएनजीसी ऐप्स के टोंस को अनिर्दिष्ट ("निजी") एपीआई - एफबी का उपयोग करने के लिए "पर्दाफाश" मिलता है, जैसा कि आपने उल्लेख किया है, उनमें से एक है, अभी तक एफबी अभी भी जीवित है और डाउनलोड के लिए उपलब्ध है, 2) एकता की समस्या तेजी से संबोधित की गई थी, और एकता वापस बाहर है। - जहाँ तक Apple चाहता है कि आप अपने सामान का उपयोग करें, मैं असहमत नहीं होगा, लेकिन चाहते हैं और आवश्यकता बहुत अलग हैं। एंटरप्राइज़ ऐप्स के लिए: आप MT एंटरप्राइज़ ऐप्स परिनियोजित कर सकते हैं। वे सिर्फ देशी बायनेरिज़ हैं। मुझे समस्या नहीं दिख रही है और न ही मुझे समझ में आ रहा है कि आप इतने एमटी विरोधी क्यों हैं।
रोरी बेलीथ 20

1
मुझे यह जोड़ना चाहिए कि यह ऐसा नहीं है कि मैं ओबजेक के सिंटैक्स से "नफरत" करता हूं, लेकिन यह कि मैं C # पसंद करता हूं। मैं कोको के लिए .Net फ्रेमवर्क के तरीके भी पसंद करता हूं। स्ट्रिंग हेरफेर, प्रसंस्करण XML, कुछ भी शामिल है, दिनांक आदि - मैं UI कार्य के लिए MT कोकोआट बाइंडिंग का उपयोग करूंगा, लेकिन अधिकांश अन्य कार्यों के लिए, .Net फ्रेमवर्क का सबसेट जो MT के साथ जहाज जीवन को बहुत आसान बनाता है। मैं (और संकलन समय पर कुछ कीड़े खोजने के लिए मेरी प्राथमिकता के रूप में ) पर जा सकता था। मैं Apple के स्टैक का आलोचक हूं, लेकिन मैं इसे नापसंद नहीं करता। यह MT और ObjC / etc को पसंद करना संभव है ।
रोरी ब्लिथ

1
Apple ने मन बदल दिया है और अब यह किसी भी भाषा / ढांचे में ऐप्स को स्वीकार करता है, और स्टोर पर ऐप्स को स्वीकार करने के लिए मानदंडों की एक अधिक 'उद्देश्य' सूची निर्धारित करता है।
मोनोमैन

2

मैं मुख्य रूप से ऑब्जेक्टिव-सी में समय का निवेश करूंगा क्योंकि आप इस तरह की साइटों से प्राप्त कर सकते हैं। ऑब्जेक्टिव-सी की ताकत में से एक यह है कि आप सी और सी ++ कोड का उपयोग कर सकते हैं, और वहां बहुत सारी परियोजनाएं हैं जो अच्छी तरह से जांच की जाती हैं

एक और बात यह है कि आप कोड (पसंद की भाषा) सेब द्वारा समर्थित होंगे। उदाहरण के लिए, iOS 5.x ने मोनो पार्टी जैसे तीसरे पक्ष के समाधान के लिए समर्थन को हटा दिया है? फिर आप अपने ग्राहकों को क्या बताएंगे?

यदि आप उद्देश्य-सी में जाने के लिए पूरी तरह तैयार नहीं हैं तो शायद HTML5 जैसे प्लेटफ़ॉर्म स्वतंत्र समाधान का उपयोग करना बेहतर है?


मुझे यह तर्क लगता है कि मोनो-पाउच का उपयोग करने से आप एक विक्रेता में बंद हो जाते हैं कि Apple बहुत मजबूत अनुमति देने / समर्थन करने के लिए बंद हो सकता है। आप एक ऐसे प्लेटफ़ॉर्म में निवेश कर सकते हैं, जो Apple की दया पर हो, जिसका अपना विकास प्लेटफ़ॉर्म वैसे भी ...
jl।

2

मैं अब कुछ महीनों के लिए मोनो-पाउच का उपयोग कर रहा हूं, मैंने अपना आधा तैयार किया हुआ ऐप ObjectiveC से पोर्ट कर लिया है ताकि मैं भविष्य में किसी समय एंड्रॉइड का समर्थन कर सकूं।

यहाँ मेरा अनुभव है:

खराब बिट्स:

  • ज़मीरिन स्टूडियो। Indie Developers जैसे कि खुद को Xamarin Studio का उपयोग करने के लिए मजबूर किया जाता है। यह हर हफ्ते बेहतर हो रहा है, डेवलपर्स कीड़े को पहचानने और ठीक करने वाले मंचों पर बहुत सक्रिय हैं, लेकिन यह अभी भी बहुत धीमा है, अक्सर लटका रहता है, बहुत सारे कीड़े हैं और डिबगिंग बहुत धीमी गति से भी है।

  • समय का निर्माण। डिवाइस पर डिबग करने के लिए मेरे बड़े (लिंक्ड) ऐप को बनाने में कुछ मिनट लग सकते हैं, इसकी तुलना XCode से की जाती है जो लगभग तुरंत ही हो जाता है। सिम्युलेटर के लिए बिल्डिंग (गैर-लिंक्ड) थोड़ा तेज है।

  • मोनो टच जारी करता है। मैंने इवेंट हैंडलिंग के कारण मेमोरी लीक के मुद्दों का अनुभव किया है, और लीक को रोकने के लिए कुछ बहुत ही बदसूरत वर्कअराउंड में डालना पड़ा है, जैसे कि जब प्रवेश करने और विचार छोड़ने पर घटनाओं को संलग्न करना और अलग करना। Xamarin डेवलपर्स सक्रिय रूप से इस तरह के मुद्दों पर गौर कर रहे हैं।

  • 3 पार्टी पुस्तकालय। मैंने अपने ऐप में उपयोग करने के लिए ObjectiveC पुस्तकालयों को परिवर्तित / बाइंड करने में काफी समय बिताया है, हालाँकि यह Objective Sharpie जैसे स्वचालित सॉफ़्टवेयर के साथ बेहतर हो रहा है।

  • बड़ा बायनेरिज़। यह वास्तव में मुझे परेशान नहीं करता है लेकिन मुझे लगा कि मैं इसका उल्लेख करूंगा। IMO का एक जोड़ा इन दिनों कुछ भी नहीं है।

अच्छे बिट्स:

  • बहु मंच। मेरा दोस्त खुशी से मेरे कोर कोडबेस से मेरे ऐप का एंड्रॉइड संस्करण बना रहा है, हम समानांतर में विकसित कर रहे हैं और ड्रॉपबॉक्स पर एक रिमोट गिट रिपॉजिटरी के लिए प्रतिबद्ध हैं, यह अच्छी तरह से चल रहा है।

  • नेट। C # .Net में कार्य करना उद्देश्य C IMO की तुलना में बहुत अच्छा है।

  • MonoTouch। IOS में बहुत ज्यादा सब कुछ .Net में मिरर किया गया है और यह काम करने के लिए काफी सीधा है।

  • Xamarin। आप देख सकते हैं कि ये लोग वास्तव में सब कुछ सुधारने के लिए काम कर रहे हैं, जिससे विकास और आसान हो गया है।

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

यदि आप पूरी तरह से एक ऐसा आईफ़ोन ऐप बना रहे हैं जिसकी ज़रूरत कभी दूसरे प्लेटफ़ॉर्म पर नहीं होगी, और आप एक Indie डेवलपर हैं, तो मैं अभी के लिए XCode और Objective C के साथ रहना चाहूंगा।


मेरे उत्तर पर एक त्वरित अपडेट। एक तेज मैक पर जाने के बाद से मैंने बिल्ड समय को बहुत तेज पाया है, यह अभी भी एक्सकोड की तरह तत्काल नहीं है लेकिन यह ठीक है।
डैनफ़ोर्डम

1

सी # के साथ-साथ ऑब्जेक्टिव-सी दोनों के साथ किसी के अनुभव के साथ, मैं कहता हूं कि ज्यादातर लोग ज़ामरीन पैसे के लायक होंगे।

C # एक बहुत अच्छी डिज़ाइन की गई भाषा है और C # API की डिज़ाइन अच्छी है। बेशक कोको टच एपीआई (UIKit सहित) में बेहतरीन डिजाइन है, फिर भी भाषा को कई तरीकों से बेहतर बनाया जा सकता है। C # में लिखते समय आप Objective-C में समान कोड लिखने की तुलना में अधिक उत्पादक होंगे। यह कई कारणों के कारण है, लेकिन कुछ कारण होंगे:

  • C # में टाइप इंट्रेंस है । टाइप इंफ़ेक्शन लिखने के कोड को तेज़ बनाता है, क्योंकि आपको किसी असाइनमेंट के बाईं ओर के प्रकार को "जानना" नहीं है। यह रिफैक्टिंग को आसान और अधिक सुरक्षित बनाता है।

  • C # में जेनेरिक हैं , जो समान ऑब्जेक्टिव-सी कोड की तुलना में त्रुटियों को कम करेंगे (हालांकि ऑब्जेक्टिव-सी में कुछ काम के आस-पास हैं, ज्यादातर स्थितियों में डेवलपर्स उनसे बचेंगे)।

  • हाल ही में Xamarin ने Async / Await के लिए समर्थन जोड़ा , जो अतुल्यकालिक कोड को लिखना बहुत आसान बनाता है।

  • आप आईओएस, एंड्रॉइड और विंडोज फोन पर कोड बेस का हिस्सा पुन: उपयोग कर पाएंगे।

  • मोनोऑच काफी हद तक कोकोआ एपीआई के बहुत ही सरल तरीके से लागू करता है। उदाहरण: यदि आपको कोकोआटच के साथ अनुभव प्राप्त हुआ है, तो आपको पता होगा कि मोनोऑच में नियंत्रण के लिए कक्षाएं कहां लगती हैं (MonoTouch.UIKit में UIButton, UIView, UINavigationController, आदि के लिए कक्षाएं शामिल हैं ...) इसी तरह, MonoTouch.Foundation को NSString, के लिए कक्षाएं मिलीं। NSData, आदि ...)।

  • Xamarin उपयोगकर्ताओं को PhoneGap या टाइटेनियम जैसे समाधानों के विपरीत एक मूल अनुभव प्रदान करेगा।

अब Objective-C के C # पर कुछ फायदे हैं, लेकिन ज्यादातर स्थितियों में C # में ऐप्स लिखने से आमतौर पर कम विकसित समय और क्लीनर कोड और उसी ऐप को अन्य प्लेटफॉर्म पर पोर्ट करने के लिए कम काम होता है। एक उल्लेखनीय अपवाद उच्च प्रदर्शन वाले खेल हो सकते हैं जो ओपनजीएल पर भरोसा करते हैं।


-35

MonoTouch लाइब्रेरी की लागत पूरी तरह से बिंदु के बगल में है। आपके iPhone ऐप्स के लिए मोनो का उपयोग नहीं करने का कारण यह है कि यह एक बैसाखी है। यदि आपको देशी उपकरण सीखने के लिए परेशान नहीं किया जा सकता है, तो मेरे पास यह मानने का कोई कारण नहीं है कि आपका उत्पाद डाउनलोड करने लायक है।

संपादित करें: 4/14/2010 MonoTouch के साथ लिखे गए एप्लिकेशन iTunes स्टोर के लिए योग्य नहीं हैं। यह वैसा ही है जैसा इसे होना चाहिए। Apple ने Mac पर बहुत सारे उथले बंदरगाह देखे, Qt जैसे क्रॉस-प्लेटफ़ॉर्म टूलकिट का उपयोग किया, या सिस्टम 7 टूलबॉक्स का Adobe का स्वयं का आंशिक पुन: कार्यान्वयन, और इसके लंबे और छोटे होने का मतलब है कि वे अभी बहुत अच्छे नहीं हैं।


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

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

3
एंड्रयू, आप नहीं जानते कि आप कहाँ बोलते हैं। उद्देश्य-सी कोई बैकवाटर नहीं है; यह मैक, iPhone, और iPad के लिए मूल विकास वातावरण की रीढ़ है।
NSResponder

5
तो आप कुछ ऐसा सरल उदाहरण निकालते हैं जो Apple ने फ्रेमवर्क में बनाया है, और श्रेष्ठता का दावा करते हैं, जबकि फ्रेमवर्क के उन हिस्सों को आसानी से अनदेखा कर रहे हैं जो C # समतुल्य की तुलना में अधिक स्पष्ट हैं? नहीं है कि एक स्ट्रोमैन तर्क के कुछ?
एंड्रयू रोलिंग

8
मैंने MonoTouch में स्विच किया और 4.0 पर अब तक 47 ऐप प्रकाशित किए हैं। मैं इसे फुल टाइम करता हूं। महान, तेज काम करता है। मैं ऑब्जेक्टिव C में लिखता था लेकिन लिखने के लिए बहुत कम कोड के साथ Linq के साथ C # तेजी से ढूंढता था।
इयान विंक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.