एंड्रॉयड आईओएस बनाम: जो मंच डेवलपर्स के लिए सबसे अच्छा है
Makradar प्रौद्योगिकी के / / December 19, 2019
एंड्रॉयड आईओएस बनाम। ऑनलाइन लड़ाई के लिए अनन्त विषय है, जो पहले से ही शालीनता से सभी podnadoest है। लेख के पाठ गुजरती हैं और तुरंत टिप्पणी में अपने ही सही राय के दिल से बोझ उठाना के लिए आगे बढ़ने के लिए जल्दी मत करो। आज हम फिर से बात करेंगे जिसके बारे में सिस्टम बेहतर है, लेकिन एक अलग तरीके से।
डेवलपर्स - जो लोग किसी भी मंच, यानी अनुप्रयोगों का एक महत्वपूर्ण हिस्सा बना सकते हैं। यह विकास उपकरण की गुणवत्ता है, यह प्रदान करता है एक मंच अंतिम परिणाम पर निर्भर करता है। तो नीचे क्या प्रणाली लिखने के लिए बेहतर है? इस सवाल का एक अनुभवी ऐप्लिकेशन डेवलपर हैं जो App स्टोर में प्रकाशित किया जाना है, और गूगल प्ले में था के उत्तर दें।
मंच के चुनाव - किसी भी नई परियोजना के लिए एक बुनियादी समस्या। Android या iOS? हाल ही में खबर यह है कि एंड्रॉयड सफलतापूर्वक बाजार के 80% पर कब्जा कर लिया गया है को देखते हुए, विकल्प और भी मुश्किल हो जाता है। इससे कोई फर्क नहीं पड़ता कि प्रबंधकों और मुद्दा लोगों के तकनीकी पहलुओं के साथ भी जानकार अन्य नहीं इसके बारे में सोचो। एक और बात - डेवलपर्स।
क्या उनकी राय है? इस या उस मंच का लाभ सीधे उनके जीवन को बेहतर बनाने की अपनी क्षमता पर निर्भर है।
और "वे" मेरा मतलब है "हमारे।" टेकक्रंच पर लेखक की गतिविधियों के अलावा, मैं में विकासशील हूँ HappyFunCorp. इसके अलावा, नहीं तो बहुत पहले, मैं अपनी परियोजना पालतू के माध्यम से आवेदन पत्र opensorsnyh एक युगल गीत बनाया। यह इन आवेदनों मैं तुलना के लिए इस्तेमाल करते हैं।
रिकॉर्ड के लिए: मैं पहले से, कुछ Android और iOS अनुप्रयोगों लिखने के लिए दोनों निजी इस्तेमाल के लिए और काम करने के लिए किया था। विशेष रूप से, मैं अपने समाचार एग्रीगेटर के लिए मोबाइल ग्राहक लिखा था Scanvineयही कारण है कि एकत्र असामान्य रूप से सोशल मीडिया से लोकप्रिय कहानियों। अपने आवेदन के स्रोत कोड Github (पर पाया जा सकताएंड्रॉयड | आईओएस), और स्वयं एप्लिकेशन में उपलब्ध हैं Google Play और App स्टोर.
ठीक है, लड़ाई शुरू करते हैं।
बुधवार
आप अभी भी एक पाठ संपादक में कोड लिख सकते हैं, और कई अब तक कर रहे हैं, लेकिन के मामले में प्रदर्शन आईडीई उपयोग करने के लिए अधिक उपयोगी है (एकीकृत विकास परिवेश - आईडीई)।
एप्पल के मामले में, हम इस माहौल में Xcode, और काम है - खुशी। यह लचीला, तेज, शक्तिशाली और सक्षम मदद करने के लिए है, बहुत ज्यादा बिना हस्तक्षेप किए। और वह बेहतर उपकरण iOS अनुप्रयोगों पर पूरा नियंत्रण है, और बनाए रखने के लिए एप्पल द्वारा उठाए मुश्किल और पागल उपायों के बावजूद हो रही है,। डिबगर सुचारू रूप से चलाता है, और सिमुलेशन - तेज़ और उत्तरदायी।
क्या Android के बारे में? ओह, एंड्रॉयड। फिलहाल, यह ग्रहण है के तहत वास्तविक विकास के वातावरण, एंड्रॉयड के एक मुट्ठी भर अनुकूलित प्लग-इन, और यह अश्लीलतापूर्वक बुरा। धीरे, अनाड़ी, अतार्किक, अक्सर स्पष्ट रूप से समझ से बाहर, बुरी तरह से तैयार किया गया है, बहुत जटिल - एक असली गड़बड़। इसके डिबगर तो असुविधाजनक है उस समय मैं लॉग को संवारता में लगने वाला अधिकांश, मेरे कब्जे में है, जबकि Xcode के साथ एक वास्तविक उपकरण-शिकारी कीड़े। एमुलेटर एंड्रॉयड, जो पहली बार डाउनलोड करने के लिए कुछ ही मिनट लगते बारे में न भूलें, और फिर वह एडीबी से कनेक्ट नहीं कर सकता है।
कहने के लिए गूगल इस समस्या से अवगत है और वे एक नया पर काम कर रहे है कि निष्पक्ष बनाने के लिए एंड्रॉयड स्टूडियो IDE:
वर्तमान में, एंड्रॉयड स्टूडियो एक प्रारंभिक पूर्वावलोकन के रूप में उपलब्ध है। कुछ कार्यों की स्थापना नहीं हो सकता है, या लागू नहीं किया जाता है, गलतियों के कारण हो सकता है। अधूरा उत्पाद के उपयोग आपके बेचैनी उत्पन्न कर रहा है, तो आप डाउनलोड करने और एडीटी बंडल (एडीटी साथ ग्रहण प्लगइन) का उपयोग करने के लिए जारी कर सकते हैं।
अच्छा देखने के लिए कि वे इस समस्या पर काम कर रहे हैं, लेकिन अभी भी आश्चर्य की बात - की खरीद के बाद 4 डेढ़ साल के बाद मेरे पहले एंड्रॉयड की तरह गड़बड़ अभी भी पूर्णता की सीमा है, जो एक विकास के वातावरण को प्राप्त करने में सक्षम था है एंड्रॉयड।
यहाँ आईओएस धड़कता है, बिना शर्त।
का विन्यास
Xcode की पोशिश और ऑब्जेक्टिव-सी के तहत सत्तर के दशक प्रोग्रामिंग के युग से Lovecraft की भयावहता छिपे हुए हैं। सिर्फ मजाक कर रहा है, मैं मजाक नहीं कर रहा हूँ... लेकिन अभी भी। मैक्रो, और शीर्षक फ़ाइलें, परियोजनाओं, उद्देश्यों, योजना और विधानसभा विन्यास और भयानक, विधानसभा मापदंडों के भयावह सूची। और अधिक अविश्वसनीय खोजों की शैली में "ओह, अपने तीसरे पक्ष के कोड एआरसी का समर्थन नहीं करता? सीधे शब्दों में झंडा -fno-ObjC-चाप »जोड़ें। बस? नहीं!
एंड्रॉयड में आप एक मैनिफ़ेस्ट फ़ाइल है, और ग्रहण आम तौर पर पूरी तरह से एप्लिकेशन हर बार जब आप एक फ़ाइल रखना पुनर्निर्माण। मैं अधिक स्पष्टता चाहते हैं जब आप, उदाहरण के लिए, आप एक त्रुटि संदेश तथ्य यह है कि ठीक से नियम कॉन्फ़िगर की वजह से प्राप्त है, लेकिन यह एक मामूली दोष है। एंड्रॉयड आवेदन का विन्यास सरल और सुरुचिपूर्ण है।
यहां Android धड़कता है।
इंटरफेस डिजाइन
यह प्रतीत होता है कि एप्पल निश्चित रूप से है विजयी उभरने। उनके डिजाइनर के साथ आप आसानी से और जल्दी से एक सरल और अच्छा लग रही इंटरफ़ेस बना सकते हैं। समस्या यह है कि लंबे समय तक मैं डिजाइनर के साथ काम किया है, कम मुझे यह पसंद आया। यह एक और समय है जब आप विन्यास जटिलता को खोलने है - उपकरण साधारण चीजें बनाने के लिए आदर्श है, लेकिन के विकास के साथ आवेदन साधारण चीजें अचानक जटिल हो जाते हैं, और मैं वास्तव में इन मल्टी स्क्रीन स्टोरीबोर्ड उन है, जो एप्पल के बारे में जोड़ा पसंद नहीं एक साल पहले।
एंड्रॉयड पर, सिद्धांत तुलनीय दृश्य उपकरण प्रदान की जाती है, लेकिन व्यवहार में आप लिखते हैं एक्सएमएल फाइलAndroid उपकरणों की प्रारूपों स्क्रीन के सभी किस्म पर आवेदन की एक सही प्रदर्शन के लिए एक निश्चित भाग्य होता है पर कि ड्राइंग निर्देश युक्त। एप्पल उसी तरह आगे बढ़ रहा है, और उनके ऑटो लेआउट स्पष्ट रूप से IOS उपकरणों पर भावी विस्तार के रूपांतरों स्क्रीन के लिए तेज।
इसी समय, एंड्रॉयड डेवलपर को आइकन सेटजबकि आईओएस डेवलपर्स के लिए चालू करने के लिए मजबूर किया जाता है तीसरे पक्ष की सेवाओंया अपने स्वयं के आइकन आकर्षित।
इस दौर में विजेता और अधिक कठिन चयन करने के लिए है, लेकिन मैं दो कारणों के लिए आईओएस वरीयता दे देंगे। सबसे पहले, यह अभी भी बहुत आसान है - (iPad सहित) सिर्फ 3 स्क्रीन आकार और 2 प्रारूप पहलू अनुपात। इस संबंध में एंड्रॉयड विविधता जटिलता कहते हैं। दूसरी बात दृश्य तत्वों (पॉप-अप मेनू, संदेश, और इसी तरह) के डिफ़ॉल्ट की अपील है। आईओएस में यह सब और अधिक आकर्षक लग रहा है।
यहाँ आईओएस धड़कता है।
भाषा
एंड्रॉयड अनुप्रयोगों जावा, आईओएस में लिखे गए हैं - ऑब्जेक्टिव-सी पर। वहाँ की तरह अपवाद हैं Xamarinलेकिन ज्यादातर मामलों में इस तरह के एक प्रभाग मान्य है।
मैं जावा में लिखने के लिए सीखा है, और पहली बार में नहीं विशेष रूप से बड़े पैमाने पर अपनी स्थूलता के कारण, ऑब्जेक्टिव-सी के बारे में सोचा।
एक स्ट्रिंग की तरह:
स्ट्रिंग s2 = s1.replace ( "abc", "xyz");
उसे बारी-बारी:
NSString * s2 = [एस 1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
लेकिन इस प्रक्रिया में भाषा मैं वास्तव में पसंद की खोज। उन्होंने कहा कि बेहतर और जावा से क्लीनर है।
इस मामले में, भी, वहाँ पेशेवरों जावा हैं। उदाहरण के लिए, एक सरल जाल और ट्रेस त्रुटियों। पिछले कुछ वर्षों, एंड्रॉयड, कचरा संग्रहण, यह है कि के मामले में एक और बहुत महत्वपूर्ण लाभ कर दिया गया है अनावश्यक वस्तुओं से स्मृति का स्वत: शुद्धि, लेकिन अब आईओएस एक ही बात जानता है, और वास्तव में एक फायदा है ध्वस्त हो। तथ्य यह है कि पिछले जीत यहाँ आईओएस को जाता है को देखते हुए।
यहाँ आईओएस धड़कता है।
एपीआई
में Android और iOS डेवलपर्स के लिए उपलब्ध है, और आम तौर पर सॉफ्टवेयर का एक विशाल पुस्तकालय है, वे काफी समान हैं: के लिए एपीआई फोन कार्यों और संचार, नेटवर्क, दर्शकों के शस्त्रागार के लिए उपयोग के लिए एपीआई, शक्तिशाली WebView सहित आपरेशन - लगभग पूर्ण का क्लोन ब्राउज़र।
काम के अधिकांश नियंत्रकों के साथ किया जाता है, और सामान्य आईओएस ViewController एंड्रॉयड गतिविधि के बराबर है।
जो वास्तव में एंड्रॉयड, क्योंकि यह एक पूर्ण एनालॉग कोर डाटा रूपरेखा है नहीं है। कुल मिलाकर, प्रणाली क्लीनर और बेहतर बनाया गया है। उदाहरण के लिए, बस की तुलना इनदो आईओएस, में वर्ग जो आवेदन में काम के अधिकांश प्रदर्शन, साथ इनतीनबराबर एंड्रॉयड में कक्षाएं। अंत में, मैं बहुत iOS के साथ काम करना पसंद करते हैं CollectionViewControllerAndroid के साथ की तुलना में ListAdapter.
एक अन्य महत्वपूर्ण मीट्रिक: कोड की लाइनों की संख्या। दोनों प्लेटफार्मों के लिए आवेदन की मेरी संस्करण सुविधाओं और कार्यों में लगभग समान हैं, लेकिन आईओएस में उन्हें लागू करने के यह कोड के अपने 1596 लाइनों, हेडर फाइल सहित ले लिया, और आवश्यक ही कार्य के साथ Android संस्करण बनाने के लिए 2109 पंक्तियाँ। अंतर 32% है।
यहाँ आईओएस धड़कता है।
इंटरनेट
आज, अनुप्रयोगों के विशाल बहुमत इंटरनेट से अधिक गाइड, बजाय स्टैंड-अलोन कार्यक्रम हैं। यह एक बहुत महत्वपूर्ण बिंदु है, और इसे अलग से विचार किया जाना चाहिए। दोनों प्रणालियों के शस्त्रागार में नेटवर्क के साथ सहयोग के कार्यान्वयन के लिए उपकरणों की एक संख्या और एपीआई की है। दोनों प्लेटफ़ॉर्म लगभग पूर्ण ब्राउज़र है, जो एप्लिकेशन में बनाया जा सकता आप की तरह है और जहाँ भी रूप में तुम जाओ लागू।
कनेक्शन पृष्ठभूमि में चलाने चाहिए और आवेदन ही साथ हस्तक्षेप नहीं करता। एंड्रॉयड में multithreading लागू करने के लिए इस्तेमाल किया AsyncTask. यह बहुत अच्छी तरह से काम करता है और आसानी से की अनुमति देता है निर्धारितचाहे उपयोगकर्ता पल में वेब पर है। आईओएस भी इसी तरह की क्षमता प्रदान करता है, लेकिन वे एक अपेक्षाकृत कम स्तर पर लागू किया जाता है और डेवलपर्स की जरूरतों को पूरा नहीं करते।
हालांकि, कई तीसरे पक्ष के पुस्तकालयों, खुला स्रोत हैं, और वे जीवन बहुत आसान बनाते हैं। मैं AFNetworking इस्तेमाल किया है, और यह बस के रूप में अच्छी तरह से के रूप में यह विज्ञापन में जाना जाता है काम करता है।
यहाँ डिफ़ॉल्ट Android और iOS तीसरे पक्ष के पुस्तकालयों का उपयोग कर धड़कता है।
शेयरिंग
कितना आसान आप फेसबुक, ट्विटर, Evernote, और अन्य सेवाओं में विशेष आवेदन के किसी भी हिस्सा? ऐसा लगता है कि इस पहले दौर में जो एंड्रॉयड 100% नॉकआउट जीतेंगे हो जाएगा: यह बातचीत का एक शक्तिशाली प्रणाली है अनुप्रयोगों उद्देश्य, और सामान्य रूप से कहा जाता है के बीच, एंड्रॉयड और अधिक अनुरोध के प्रति वफादार और बीच सूचना के प्रेषण है अनुप्रयोगों।
सामान्य तौर पर, एप्पल काफी sharinga अवसरों में प्रतियोगी पकड़ा गया है। तुम मेरे शब्द नहीं ले जा सकते, पर Scanvine में समारोह कोड "शेयर कहानी" जाँच एंड्रॉयड और आईओएस. केवल कारण है कि आईओएस कोड अधिक - गूगल एनालिटिक्स के एक और अधिक लचीला ट्रैकिंग की उस में उपस्थिति, बल्कि एंड्रॉयड की तुलना में।
फिर आकर्षित।
विखंडन
तब मैं कहने के लिए बहुत जरूरत नहीं है। लेकिन, गूगल उपयोग करने के लिए कोशिश कर रहा है दिलचस्प defragmentation रणनीतितो कम समय में आइटम होगा कि फिर से जांच की।
यहाँ आईओएस धड़कता है।
आवेदन के प्रकाशन
एंड्रॉयड अनुप्रयोगों का प्रकाशन अत्यंत सरल है। ग्रहण में उपकरण आपको जल्दी से आवेदन का निर्माण करने की अनुमति देता है, और अपने हाथों में पहले से ही एक apk फ़ाइल है। एक ई-मेल में सुपुर्द करें ऑनलाइन पोस्ट, या डाउनलोड Google Play पर, मात्र एक घंटे में यह (लगभग) दुनिया भर में उपलब्ध हो जाएगी। तो फिर यह प्रतिष्ठानों के आंकड़ों पर नज़र संभव हो जाता है और जिसकी वजह से आवेदन दुर्घटनाओं कोड की एक विशिष्ट लाइन अप करने के लिए दुर्घटना की रिपोर्ट है,। यदि आवश्यक हो, तो आप तुरंत शुरू करने को अपडेट कर सकते हैं।
App स्टोर में प्रकाशन - यह एक बुरा सपना है। मेरे दोस्त प्रमाण पत्र और वितरण प्रोफाइल के साथ युद्ध पर एक दिन में कम से कम कैलेंडर के विकास के लिए आवंटित करने के लिए सलाह देते हैं। कोई फर्क नहीं पड़ता कि कितनी बार आप इसे से पहले किया है, और कितना आसान यह Xcode के अगले संस्करण की प्रक्रिया बनाने की कोशिश कर रहा है - अगर आप अभी भी कई समस्याओं का हो जाएगा। आवेदन के परीक्षण के एक समस्या के और भी अधिक हो जाता है, जब तक आप TestFlight का उपयोग करें। इस iTunes कनेक्ट है, जो Google Play डेवलपर कंसोल के साथ किसी भी तुलना करने के लिए जाना नहीं है में जोड़े।
यहां Android धड़कता है, बिना शर्त।
विजेता
यह आईओएस हो जाता है इसके अलावा एक निश्चित मार्जिन के साथ। हम Android के फायदे हैं, लेकिन सामान्य रूप में लिखने के लिए आईओएस के लिए एक अच्छा आवेदन अभी भी एंड्रॉयड के तहत की तुलना में बहुत आसान है। इस में जोड़े तथ्य यह है कि iOS उपयोगकर्ताओं शोधन क्षमता की तुलना में अधिक है, और आप सवाल जिनमें से मंच एक स्टार्टअप के लिए एक प्राथमिकता होनी चाहिए करने के लिए एक जवाब मिलता है। शायद, खाई एंड्रॉयड स्टूडियो के रिलीज के बाद कम हो जाएगा, इस प्रकार कुछ समस्याओं को हल करने की इजाजत दी... लेकिन सब नहीं।
वैसे, अपने मुख्य फोन - नेक्सस 4, और मैं बहुत खुश हूँ।
(के माध्यम से)