मैं अपने ऐप को iOS से एंड्रॉइड पर पोर्ट कर रहा हूं: मुझे क्या जानना होगा? [बन्द है]


15

मुझे किन नुकसानों से बचना चाहिए?

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

रिकॉर्ड के लिए, मेरा ऐप UIKit और Foundation से बहुत मजबूती से जुड़ा हुआ है, इसलिए "पोर्टिंग" शब्द एक मिथ्या नाम हो सकता है; मैं वास्तव में इसे एंड्रॉइड के लिए पूरी तरह से लिखूंगा। कोई कोड पुन: उपयोग। इसके अलावा, मैं एंड्रॉइड सीखने के लिए ऐसा कर रहा हूं, इसलिए मैं पोर्ट पर विफल हो जाऊंगा और शॉर्टकट सीखने की तुलना में एंड्रॉइड सीखूंगा।


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


2
Is Eclipse the best OS X IDE for Android?हां, एडीटी ने पिछले बार मैंने जो कोशिश की थी, उस पर नेटबीन्स ने अच्छा काम नहीं किया। ग्रहण अनुशंसित IDE है।
कीयो

@ कीयो: एह? जब मैंने डेढ़ साल पहले नेटबीन्स पर इसे आजमाया तो यह बहुत अच्छा काम किया। निश्चित रूप से उस समय यह बेहतर हो जाएगा?
एलएलक्यू

@ Nassign की टिप्पणी के रूप में जवाब के रूप में: मैं निश्चित रूप से एक बहुत अधिक जवाब मिल गया होता अगर मैं Stackoverflow पर पोस्ट किया गया था, लेकिन प्रोग्रामर ब्राउज़ करना ऐसा लगता है कि इस प्रकार के बहुत सारे प्रश्न हैं जो यहां से पलायन कर रहे हैं। यदि यह उस मंच के लिए अधिक उपयुक्त होगा, तो मैं इसे वहां पर पूछ सकता हूं।
कुबी

मुझे लगता है कि यदि आप इसे स्टैकओवरफ्लो में रखते हैं तो आपको अधिक जवाब मिलेगा।
नासिनिग

1
@kubi यह पूछने के लिए एक अच्छी जगह है और इस साइट के उद्देश्य को फिट करता है: उम्मीद है कि आपको कुछ उत्तर मिलेंगे, मुझे खुद से दिलचस्पी है।

जवाबों:


11

मैं iOS से Android के लिए एक ऐप पोर्ट कर रहा हूं, यह किसी और का ऐप है जिसे मैं पोर्ट करने के लिए काम कर रहा हूं लेकिन कोई भी कम नहीं है।

सबसे पहले मैं कहूंगा कि उपयोगकर्ता आधारों को उनके उपकरणों के साथ बातचीत करने के विभिन्न तरीकों से सिखाया गया है। इसमें से बहुत से अनुप्रयोगों के वास्तविक डिजाइन के साथ-साथ उपकरणों के कार्य करने के तरीकों से आता है।

कुछ सामान्य बातें:

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

एक बड़ा व्यक्ति जिसे बहुत से लोग शुरू में नहीं सोचते हैं Your UI can not be exactly the same on both devices, यकीन है कि यह समान हो सकता है लेकिन एंड्रॉइड डिवाइस के लिए आईफोन यूआई को पोर्ट करना बहुत अच्छी तरह से काम नहीं करेगा।

कुछ कारणों से:

  • लंबे स्पर्श संदर्भ मेनू
  • मेनू पॉपअप
  • डिवाइस विभाजन अलग-अलग प्रस्तावों और पहलू अनुपात का कारण बनता है
  • साथ काम करने के लिए समान नियंत्रण नहीं

बैक एंड वास्तव में कोई बड़ी बात नहीं है क्योंकि इसका ज्यादातर हिस्सा जावा और एंड्रॉइड एसडीके में काम कर रहा है। मेरा सबसे बड़ा मुद्दा यह है कि उपयोगकर्ता क्या अपेक्षा करता है और यूआई व्यवहार और मतभेद, कभी-कभी यह बेहतर होता है और कभी-कभी यह बदतर होता है। यह वास्तव में सिर्फ इस बात पर निर्भर करता है कि आपका ऐप क्या कर रहा है।

संपादित करें

मुझे बस एहसास हुआ कि मैंने आपके सवालों के वास्तविक भागों का जवाब नहीं दिया है, इसलिए यहाँ जाता है (कम से कम मेरा सर्वश्रेष्ठ शॉट)

मैं यह नहीं कहूंगा कि किसी भी बड़ी भाषा के प्रतिमान हैं कि ओबज-सी देव गलतफहमी है, मैं कहूंगा कि जावा शायद यह पाने के लिए सरल है कि मैं एक ओओपी परिप्रेक्ष्य से क्या करना चाहता हूं। (मुझे कहना चाहिए कि मैं केवल .NET और जावा के साथ वास्तव में काम करता हूं और केवल ओब्ज-सी को पर्याप्त रूप से जानता हूं)।

मैं निश्चित रूप से एक्लिप्स का उपयोग करूंगा, मैं थोड़ी देर के लिए इंटेलीजिया का उपयोग करके थक गया और इसने मुझे कुछ समस्याओं को करने के लिए इसे प्राप्त करने की कोशिश में कई समस्याएं दीं।


जब आप कहते हैं कि "लैंडस्केप की आवश्यकता है" क्या आपका मतलब पोर्ट्रेट के अलावा है? मेरा ऐप केवल iOS पर पृष्ठभूमि में कुछ चीजें करता है, क्या मुझे पृष्ठभूमि में चलने के लिए स्पष्ट रूप से ऑप्ट-आउट करने की आवश्यकता है अगर मुझे पृष्ठभूमि में कुछ भी करने की आवश्यकता नहीं है?
कुबी

@kubi yea पोर्ट्रेट के अलावा, क्योंकि डिवाइसों के एक अच्छे सेट में हार्डवेयर कीबोर्ड होते हैं जो डिवाइस को उपयोग में लाते हैं। बैकग्राउंड पर यह तथ्य है कि जब कोई ऐप स्विच करता है तो ऐप चलता रहता है।
msarchet

+1 (या अधिक): "Android डिवाइस के लिए iPhone UI को पोर्ट करना बहुत अच्छी तरह से काम नहीं करेगा।" यह सच है: वास्तव में यूआई काफी अलग हो सकता है, क्योंकि उपलब्ध लीबी अलग है।
दान रोसेनस्टार्क

इंटेलीज आइडिया मेरे लिए एंड्रॉइड डेवलपमेंट के लिए बहुत अच्छा काम करता है। इसे प्यार करना।
अलेक्जेंडर बाबदेव

3

[यह जवाब एक रामबल या शेख़ी की तरह है। मैं इसे हटाने जा रहा था लेकिन मुझे लगा कि यह दिलचस्प हो सकता है: मुझे टिप्पणियों के माध्यम से बताएं कि क्या मुझे इसे हटाना चाहिए और मैं]।

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

blah.doIt(firstObj, secondObj);

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

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


इस पर मेरी बहुत सी सोच ने AppCode के लिए धन्यवाद को बदल दिया है। यह विस्मयकारी है। फिर भी, यह समान नाम वाली चीजों के बीच अंतर नहीं कर सकता है, लेकिन यह निश्चित रूप से आपके लिए बहुत काम करता है।
डैन रोसेनस्टार्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.