Используя PyObjC , вы можете использовать Python для написания приложений Cocoa для OS X. Могу ли я писать собственные приложения для iPhone с помощью Python, и если да, то как?
Используя PyObjC , вы можете использовать Python для написания приложений Cocoa для OS X. Могу ли я писать собственные приложения для iPhone с помощью Python, и если да, то как?
Ответы:
В настоящее время нет, в настоящее время единственными языками, доступными для доступа к iPhone SDK, являются C / C ++, Objective C и Swift.
Нет никаких технических причин, по которым это не может измениться в будущем, но я бы не стал задерживать дыхание из-за того, что это произойдет в краткосрочной перспективе.
Тем не менее, Objective-C и Swift действительно не так уж и страшны ...
2016 править
Javascript с фреймворком NativeScript теперь доступен для использования.
Вы также можете использовать PyObjC на iPhone, благодаря отличной работе Джея Фримена (saurik). См. Раздел Приложения для iPhone на Python .
Обратите внимание, что на данный момент для этого требуется взломанный iPhone.
Кажется, теперь это то, что разработчикам разрешено делать: Соглашение разработчика iOS было изменено вчера и, похоже, было изменено таким образом, чтобы сделать встраивание интерпретатора Python в ваше приложение законным:
РАЗДЕЛ 3.3.2 - ПЕРЕВОДЧИКИ
Старый:
3.3.2 Приложение не может само устанавливать или запускать другой исполняемый код любыми средствами, включая, помимо прочего, использование архитектуры подключаемых модулей, вызов других фреймворков, других API или иным образом. Если иное не одобрено Apple в письменной форме, никакой интерпретируемый код не может быть загружен или использован в Приложении, за исключением кода, который интерпретируется и запускается Документированными API Apple и встроенными интерпретаторами. Несмотря на вышесказанное, с предварительного письменного согласия Apple Приложение может использовать встроенный интерпретируемый код ограниченным образом, если такое использование предназначено исключительно для предоставления второстепенных функций или функций, которые соответствуют предполагаемой и рекламируемой цели Приложения.
Новое:
3.3.2 Приложение не может загружать или устанавливать исполняемый код. Интерпретируемый код может использоваться в Приложении только в том случае, если все сценарии, код и интерпретаторы упакованы в Приложении, а не загружены. Единственное исключение из вышеизложенного - это скрипты и код, загружаемые и выполняемые встроенной структурой Apple WebKit.
Да, ты можешь. Вы пишете свой код на tinypy (который ограничен Python), затем используете tinypy для преобразования его в C ++ и, наконец, компилируете его с помощью XCode в собственное приложение для iPhone. Фил Хасси опубликовал игру под названием Elephants! используя этот подход. Вот подробности,
http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/
Да, в настоящее время вы можете разрабатывать приложения для iOS на Python.
Есть два фреймворка, которые вы можете проверить : Kivy и PyMob .
Пожалуйста, примите во внимание ответы на этот вопрос , поскольку они более актуальны, чем этот.
Обновление Соглашения с разработчиком iOS означает, что вы можете использовать все, что захотите, при условии, что вы соответствуете рекомендациям для разработчиков. Раздел 3.3.1, ограничивавший возможности разработчиков для разработки под iOS, был полностью удален.
Источник: http://daringfireball.net/2010/09/app_store_guidelines
Pythonista имеет функцию экспорта в Xcode, которая позволяет экспортировать сценарии Python в виде проектов Xcode, которые создают автономные приложения для iOS.
https://github.com/ColdGrub1384/Pyto также заслуживает внимания.
В соглашении с iPhone SDK также довольно расплывчато говорится о том, разрешено ли вам запускать языки сценариев (кроме Javascript WebView). Я считаю, что это нормально - пока ни один из выполняемых вами скриптов не загружается из сети (поэтому предустановленные и отредактированные пользователем скрипты кажутся нормальными).
IANAL и т. Д. И т. Д.
Обновление 2019:
Хотя разработка Python-iOS является относительно незрелой и, вероятно, помешает (afaik) вашему приложению иметь собственный интерфейс и функциональность, которые могут быть достигнуты на языке разработки, поддерживаемом Apple, Apple теперь, похоже, позволяет встраивать интерпретаторы Python в собственный Swift / Obj-C. Программы.
Это поддерживает импорт библиотек Python и запуск сценариев Python (даже с предоставленными аргументами командной строки) непосредственно из вашего собственного кода Swift / Obj-C.
Моя компания фактически оборачивает нашу инфраструктуру (изначально написанную на Python) в собственное приложение для iOS! Он работает очень хорошо, и связь между частями может быть легко достигнута с помощью модели клиент-сервер.
Вот хорошая библиотека от Beeware с шаблоном cookiecutter, если вы хотите попробовать запустить сценарии Python в своем приложении для iOS: https://github.com/beeware/Python-Apple-support/tree/3.6 .
Технически, если интерпретируемый код НЕ загружен (за исключением JavaScript), приложение может быть одобрено. Фреймворк Rhomobiles "Rhodes" делает именно это, объединяя мобильный Ruby, облегченную версию Rails и ваше приложение для распространения через магазин приложений. Поскольку и интерпретатор, и интерпретируемый код упакованы в окончательное приложение, Apple не считает это нежелательным.
http://rhomobile.com/products/rhodes/
Даже после выхода последнего пресс-релиза Apple - приложения Rhodes (мобильный рубин) по-прежнему доступны в магазине приложений. Мне трудно поверить, что tinyPy или pyObjC не найдут себе места, если есть желающее сообщество разработчиков.
Вы можете сделать это с помощью PyObjC, конечно, с взломанного телефона. Но если вы хотите разместить его в App Store, они не разрешат его, потому что он «интерпретирует код». Однако вы можете использовать Shed Skin , хотя я не знаю, чтобы кто-нибудь это делал. Я не могу придумать какой-либо веской причины для этого, поскольку вы теряете динамическую типизацию и можете использовать ObjC.
Единственный значительный «внешний» язык для разработки iPhone, о котором я знаю с частично значимой поддержкой с точки зрения фреймворков и совместимости, - это MonoTouch , среда C # /. NET для разработки на iPhone.
Я думаю, что раньше это было невозможно, но недавно я услышал о PyMob, который кажется интересным, потому что приложения написаны на Python, а конечные результаты - это собственные исходные коды на различных платформах (Obj-C для iOS, Java для Android и т. Д.). Это, безусловно, уникально. Этот веб-страница объясняет это более подробно.
Я еще не пробовал это сделать, но скоро посмотрю.