क्या मैं पायथन का उपयोग कर देशी आईफोन ऐप लिख सकता हूं [बंद]


91

PyObjC का उपयोग करते हुए , आप OS X के लिए कोकोआ एप्लिकेशन लिखने के लिए पायथन का उपयोग कर सकते हैं। क्या मैं पायथन का उपयोग करके देशी आईफोन एप्लिकेशन लिख सकता हूं और यदि हां, तो कैसे?


36
iPhone देवता इस प्रश्न को पुराने (बहुत स्थानीय) होने के रूप में चिह्नित कर रहे हैं, और इसे हल करने के प्रयास भी शिकायतें आकर्षित कर रहे हैं कि यह अभी भी सही है। इसलिए, यदि आप किसी खोज के परिणामस्वरूप यहां हैं, तो चेतावनी दी जाए कि यह उत्तर '08 'से है और इसका सही उत्तर नहीं हो सकता है।

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

जवाबों:


37

वर्तमान में नहीं, वर्तमान में केवल iPhone SDK तक पहुँचने के लिए उपलब्ध भाषाएँ C / C ++, Objective C और Swift हैं।

ऐसा कोई तकनीकी कारण नहीं है कि यह भविष्य में परिवर्तित न हो सके, लेकिन अल्पावधि में ऐसा होने के लिए मैं आपकी सांस नहीं रोकूंगा।

उस ने कहा, ऑब्जेक्टिव-सी और स्विफ्ट वास्तव में बहुत डरावने नहीं हैं ...

2016 संपादित करें

NativeScript फ्रेमवर्क के साथ जावास्क्रिप्ट अब उपयोग के लिए उपलब्ध है।


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

1
@Dave Verwer: क्या यह उत्तर अभी तक का है?
bukzor

5
@bukzor nope, देखें stackoverflow.com/questions/3691655/…
cobbal

2
@ कॉबल: फिर यह धागा बहुत ही भ्रामक है .. इसे सही करने के बारे में क्या सही तरीका है?
bukzor

5
@Max क्या आपने एक मैक एप्लिकेशन बनाने के लिए PyObjC का उपयोग किया है और इसलिए पायथन में लिखे गए Apple प्रोग्राम के बीच पठनीयता की तुलना ऑब्जेक्टिव-सी में लिखे गए Apple प्रोग्राम से की है? यदि नहीं, तो आपके पास उस निर्णय के लिए आधार नहीं है।
क्रिस रेडफोर्ड

53

Jay Freeman (saurik) द्वारा उत्कृष्ट कार्य के कारण, आप iPhone पर PyObjC का उपयोग कर सकते हैं। पायथन में iPhone अनुप्रयोग देखें ।

ध्यान दें कि इसके लिए फिलहाल जेलब्रेक iPhone की आवश्यकता है।


24

ऐसा लगता है कि अब कुछ डेवलपर्स को ऐसा करने की अनुमति दी गई है: आईओएस डेवलपर समझौता कल बदल दिया गया था और ऐसा प्रतीत होता है कि इस तरह से संशोधित किया गया है कि आपके आवेदन में पायथन व्याख्याकार को एम्बेड करना कानूनी हो:

खंड २.३.२ - साक्षात्कारकर्ता

पुराना:

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

नया:

3.3.2 एक एप्लिकेशन निष्पादन योग्य कोड को डाउनलोड या इंस्टॉल नहीं कर सकता है। यदि किसी स्क्रिप्ट, कोड और दुभाषियों को एप्लिकेशन में पैक किया जाता है और डाउनलोड नहीं किया जाता है, तो व्याख्या किए गए कोड का उपयोग केवल किसी एप्लिकेशन में किया जा सकता है। पूर्वगामी के लिए एकमात्र अपवाद है Apple के बिल्ट-इन WebKit फ्रेमवर्क द्वारा डाउनलोड और चलाया जाना।


23

हाँ तुम कर सकते हो। आप अपना कोड tinypy (जो Python प्रतिबंधित है) में अपना कोड लिखें, फिर इसे C ++ में बदलने के लिए tinypy का उपयोग करें, और अंत में XCode के साथ एक देशी iPhone ऐप में इसे संकलित करें। फिल हसी ने हाथियों नामक एक गेम प्रकाशित किया है! इस दृष्टिकोण का उपयोग कर। यहाँ अधिक विवरण हैं,

http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/


21

जी हां, आजकल आप पायथन में iOS के लिए ऐप विकसित कर सकते हैं।

दो चौखटे हैं जो आप चेकआउट करना चाहते हैं: किवी और पायमोब

कृपया इस प्रश्न के उत्तर पर भी विचार करें , क्योंकि वे इस से अधिक अद्यतित हैं।


Kivy और PyMob देशी ऐप्स उत्पन्न नहीं करते हैं
Serjik

"मूल" की आपकी परिभाषा पर निर्भर करता है। प्रश्न का अर्थ है एक परिभाषा जो OSX के लिए लेखन python एप्लिकेशन को कवर करती है, एक निश्चित सीमा तक उसी तरह से जो आप अब उन्हें iOS के लिए लिख सकते हैं।
फिलिप कोर्रेया

19

IOS डेवलपर अनुबंध को अपडेट करने का मतलब है कि जब तक आप डेवलपर दिशानिर्देशों को पूरा करते हैं, तब तक आप जो चाहें उपयोग कर सकते हैं। धारा 3.3.1, जो प्रतिबंधित करता है कि डेवलपर्स आईओएस विकास के लिए क्या उपयोग कर सकते हैं, को पूरी तरह से हटा दिया गया है।

स्रोत: http://daringfireball.net/2010/09/09/app_store_guidelines


2
शुक्र है, यह भाषा 3.3.1 से हटा दी गई है !!
डैन मैकक्लेन

10

पाइथोनिस्टा में एक्सपोर्ट टू एक्सकोड फीचर है जिससे आप अपनी पायथन स्क्रिप्ट्स को एक्सकोड प्रोजेक्ट्स के रूप में एक्सपोर्ट कर सकते हैं जो स्टैंडअलोन आईओएस एप्स का निर्माण करते हैं।

https://github.com/ColdGrub1384/Pyto भी देखने लायक है।


4

IPhone SDK समझौता इस बारे में भी अस्पष्ट है कि क्या आपको स्क्रिप्टिंग भाषाएं चलाने की अनुमति है (किसी WebView के जावास्क्रिप्ट के बाहर)। मेरा पढ़ना यह है कि यह ठीक है - जब तक कि आपके द्वारा निष्पादित की जाने वाली कोई भी स्क्रिप्ट नेटवर्क से डाउनलोड नहीं की जाती है (इसलिए पूर्व-स्थापित और उपयोगकर्ता-संपादित स्क्रिप्ट ठीक लगती हैं)।

IANAL आदि आदि।


3

BeeWare देशी iOS और Android ऐप्स को संलेखन के लिए एक खुला स्रोत ढांचा है।


यह अभी भी विकास और समस्याग्रस्त है
ikel

3

2019 अपडेट:

जबकि पायथन-आईओएस विकास अपेक्षाकृत अपरिपक्व है और संभावना है कि आपके ऐप को देशी UI और कार्यक्षमता से रोका जा सकेगा जो कि Apple-समर्थित विकास भाषा में प्राप्त किया जा सकता है, Apple अब मूल स्विफ्ट या ओज-सी में पायथन दुभाषियों को एम्बेड करने की अनुमति देता है। क्षुधा।

यह आपके नेटिव स्विफ्ट / ओबज-सी कोड से सीधे पायथन पुस्तकालयों को आयात करने और पायथन स्क्रिप्ट (यहां तक ​​कि आपूर्ति की गई कमांड-लाइन तर्कों के साथ) चलाने का समर्थन करता है।

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

यदि आप अपने iOS ऐप में पायथन स्क्रिप्ट्स को चलाना और चलाना चाहते हैं, तो कुकीजवेयर टेम्प्लेट के साथ सावधान रहें, यहाँ एक अच्छी लाइब्रेरी है: https://github.com/beeware/Python-Apple-support/tree/3.6


1

तकनीकी रूप से, जब तक व्याख्या किए गए कोड ISN'T को डाउनलोड नहीं किया जाता (जावास्क्रिप्ट को छोड़कर), ऐप को मंजूरी दी जा सकती है। Rhimoiles "Rhodes" फ्रेमवर्क बस यही करता है, मोबाइल रूबी, रेल का हल्का संस्करण और ऐप-स्टोर के माध्यम से वितरण के लिए आपका ऐप। क्योंकि दुभाषिया और व्याख्या किए गए कोड दोनों को अंतिम अनुप्रयोग में पैक किया गया है - Apple को यह आपत्तिजनक नहीं लगता है।

http://rhomobile.com/products/rhodes/

यहां तक ​​कि नवीनतम ऐप्पल प्रेस रिलीज़ के बाद भी - रोड्स ऐप (मोबाइल रूबी) अभी भी ऐप-स्टोर पर व्यवहार्य हैं। मुझे यह विश्वास करना मुश्किल है कि अगर कोई इच्छुक डेवलपर समुदाय है, तो smallPy या pyObjC को कोई स्थान नहीं मिलेगा।


0

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


-1

IPhone विकास के लिए केवल महत्वपूर्ण "बाहरी" भाषा है कि मैं चौखटे और अनुकूलता के मामले में अर्द्ध महत्वपूर्ण समर्थन के साथ के बारे में पता कर रहा हूँ है MonoTouch , iPhone पर विकसित करने के लिए एक सी # /। NET पर्यावरण।


हां, लेकिन नए iPhone डेवलपर समझौते के साथ हमें इंतजार करना होगा और देखना होगा कि मोनो टच क्या होगा।
टॉकिंगकोड

1
@ होली: अब नया देव समझौता स्पष्ट रूप से मोनो-पाउच डालता है
डैन मैकक्लेन

-1

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

मैं इसे अभी तक एक शॉट नहीं दिया है, लेकिन जल्द ही एक नज़र रखना होगा।


जाहिरा तौर पर यह एक वाणिज्यिक परियोजना के रूप में शुरू होने जा रहा है। अब तक (28-सितंबर -12) साइट कहती है: "हम एक सीमित बीटा प्रोग्राम के लिए ग्राहकों को स्वीकार कर रहे हैं। कृपया हमसे पूछताछ करने के लिए संपर्क करें" और यही है।
ccpizza
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.