2011-03-23 9 views
10

क्या क्रॉस प्लेटफ़ॉर्म मोबाइल ऐप विकसित करने का कोई तरीका है? हम चाहते हैं कि ये प्रत्येक मंच पर देशी ऐप्स हों, और जरूरी नहीं कि किसी प्रकार का वेब पेज। -> स्टैंडर्ड सी # WP7 के लिए एप्लिकेशन मोबाइल ऐप - लक्ष्यीकरण आईफोन, WP7, एंड्रॉइड, और ब्लैकबेरी

  • -> अनुप्रयोग के लिए MonoTouch पर बनाया गया

    • सी # बैकएंड (व्यवसाय तर्क)
    • :

      वर्तमान में हम यह दो भाषाओं में विभाजित करने के लिए सोच रहे हैं iPhone/iPad/आदि।

    • जावा बैकएंड (व्यवसाय तर्क)
    • -> स्टैंडर्ड एंड्रॉयड जावा एप्लिकेशन
    • (तैयार नहीं सी # अभी तक की MonoDroid संस्करण) -> मानक ब्लैकबेरी जावा एप्लिकेशन

    हम भी शुरू में विकसित कर सकता सी # में और हमारे सी # को प्रारंभिक बिंदु के रूप में जावा में परिवर्तित करने के लिए वहां रूपांतरण टूल में से एक का उपयोग करें।

    क्या कोई और दृष्टिकोण है? हमारे कौशल में मुख्य रूप से एक मजबूत सी # नेट पृष्ठभूमि, और मामूली जावा अनुभव शामिल हैं।

    हम वास्तव में निम्न स्तर पर जाना नहीं चाहते हैं और काम पूरा करने के लिए सी/सी ++ जैसे कुछ उपयोग करना चाहते हैं। ये आम तौर पर सरल LOB अनुप्रयोग होने जा रहे हैं जो कुछ वेब सेवा से संवाद करते हैं।

    साइड प्रश्न: गुस्सा पक्षी के निर्माताओं की तरह गेम देव कैसे करते हैं?

    अद्यतन:

    MonoDroid अब आधिकारिक तौर पर जारी की है। तो ऐसा लगता है कि आपको केवल ब्लैकबेरी के लिए जावा का उपयोग करने की आवश्यकता होगी। हम ब्लैकबेरी के विकास के लिए बिल्कुल विचार नहीं कर रहे हैं, क्योंकि अन्य 3 प्लेटफार्मों के विकास के लिए सरलीकृत किया गया है। निश्चित रूप से कुछ लागत शामिल है, क्योंकि मोनो टच और मोनोड्रॉइड दोनों $ 39 9 हैं और आपको विजुअल स्टूडियो के लिए लाइसेंस की भी आवश्यकता होगी (इसमें ऐप स्टोर, इत्यादि के लिए लागत शामिल नहीं है)।

  • +0

    पढ़ें http://stackoverflow.com/questions/4221315/what-kind-of-conversion-efforts-are-there-involved-in-porting-a-complete-droid-ap/4221446#4221446 यह छोटा है सीमा प्रश्न लेकिन क्रॉस प्लेटफॉर्म विषय पर मेरी राय अच्छी तरह से बताती है। – blindstuff

    +0

    हां, मुझे खुशी है कि हम शुरुआत से इसकी योजना बना रहे हैं। हम निश्चित रूप से पुन: प्रयोज्य कोड से यूआई-डिवाइस-विशिष्ट कोड को अलग करना चाहते हैं। – jonathanpeppers

    उत्तर

    2

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

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

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

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

    +0

    ठीक है, मैं एक "पवित्र अंगूर" की अधिक उम्मीद कर रहा था लेकिन ऐसा नहीं लगता कि ऐसी कोई चीज है। अगर मुझे अन्य सुझाव नहीं मिलते हैं तो मैं आपको जवाब के रूप में चिह्नित कर सकता हूं। – jonathanpeppers

    +0

    हाँ, मुझे लगता है कि दुर्भाग्य से क्रॉस-मोबाइल-प्लेटफार्म विकास का "पवित्र अंगूर" एक मिथक है। शायद कभी ... –

    +0

    Appcelerator का एक विकल्प फोनगैप है। लेकिन आप इस तरह के औजारों का उपयोग न करने पर बहुत सुंदर लगते हैं। मैंने सोचा कि अगर कोई भविष्य में इस धागे को खोजता है और विकल्पों की तलाश में है तो मुझे इसका उल्लेख होगा। – Tony

    0

    मुझे नहीं लगता कि यह (आसानी से) संभव है, यदि आप अपने स्वयं के ऐप में वेबव्यू में कुछ HTML5 (jquerymobile आदि) का उपयोग नहीं कर रहे हैं (असली ऐप की तरह दिखता है, लेकिन फिर भी आप किसी भी तरह देखेंगे यह नहीं है) सामान्य ब्राउज़र की बजाय। आप अभी भी डिवाइस से कुछ मूल एपीआई का उपयोग कर सकते हैं (accelerometer, ...)।

    Sybase Unwired Platform जैसे (वाणिज्यिक) प्लेटफार्म हैं जो कुछ क्लाइंट कोड उत्पन्न करने में आपकी सहायता करते हैं। ब्लैकबेरी और विंडोज मोबाइल के लिए अफैक भी कुछ यूआई सर्वर पर व्यापार वस्तुओं से उत्पन्न किया जा सकता है। लेकिन मेरे लिए यह लगता है कि यह आपके मामले के लिए बहुत भारी वजन हो सकता है।

    सादर, मार्टिन

    +0

    मुझे लगता है कि हम एचटीएमएल 5 का उपयोग करना टालना चाहते हैं, क्योंकि मेरा मानना ​​है कि हमारे ग्राहक पृष्ठभूमि में और अधिक उन्नत चीजें करना चाहते हैं, आदि – jonathanpeppers

    1

    उन कुछ महान जवाब नहीं है। मैं सहमत हूं, एक्स-प्लेटफार्म विकास अभी भी बहुत प्राचीन है। मैं 2 अंक जोड़ना चाहता हूं:

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

    2) एक्स-प्लेटफ़ॉर्म टूल से बचने का एक अन्य कारण यह है कि आपको हमेशा प्लेटफ़ॉर्म विक्रेता (ऐप्पल, Google, MSFT इत्यादि) द्वारा जारी किए गए नए एपीआई का समर्थन करने के लिए इंतजार करना होगा। एक बार ये कंपनियां नए एपीआई जारी कर लेती हैं, तो टूल्स को अपडेट करने की आवश्यकता होगी और तभी आप नए एपीआई का उपयोग कर सकेंगे।

    +1

    सर्वर साइड स्टफ सभी सी # (या जो भी हम चाहते हैं) होंगे। मुझे और स्पष्ट होना चाहिए था, लेकिन "बैकएंड" से मेरा मतलब व्यापार परत है जो हमारे सर्वर से संचार करती है और सर्वर से डेटा का प्रतिनिधित्व करने के लिए कुछ कक्षाएं होती हैं। यह वह हिस्सा है जिसे 2 भाषाओं में डुप्लिकेट किया जाएगा। मैं निश्चित रूप से सहमत हूं कि हम एक्स-प्लेटफार्म टूल्स से बचना चाहते हैं क्योंकि वे सभी कुछ अच्छे तरीके से कम हो जाते हैं। – jonathanpeppers

    +0

    मैं अभी भी डुप्लिकेट परतों (बनाए रखने के लिए बहुत आसान है, जब आप पहले से ही प्रत्येक मंच के लिए डुप्लिकेट यूआई परतों से निपट रहे हैं) से बचने और बचने के लिए प्रयास करेंगे। यहां मैं क्या करूँगा: यूआई परत -> व्यापार तर्क परत -> डेटा एक्सेस लेयर -> डीबी और अलग-अलग UI परतें एक ही व्यवसाय तर्क परत के लिए एक वेब सेवा के माध्यम से बात करती हैं। – Beta

    +0

    वेब सेवा के लिए संचार प्रदान करने वाला कोड 2 भाषाओं के बीच एकमात्र डुप्लिकेट कोड होगा। आप चित्र से बाहर webservice खींच सकते हैं, क्योंकि हम इसे विकसित कर सकते हैं हालांकि हम चाहते हैं। मैं केवल विशेष रूप से प्रत्येक डिवाइस पर चलने वाले कोड का जिक्र कर रहा हूं। – jonathanpeppers

     संबंधित मुद्दे

    • कोई संबंधित समस्या नहीं^_^