Використовуючи PyObjC , ви можете використовувати Python для написання програм для какао для OS X. Чи можу я писати власні програми для iPhone за допомогою Python, і якщо так, то як?
Використовуючи PyObjC , ви можете використовувати Python для написання програм для какао для OS X. Чи можу я писати власні програми для iPhone за допомогою Python, і якщо так, то як?
Відповіді:
На даний момент єдиними мовами, доступними для доступу до iPhone SDK, є C / C ++, Objective C та Swift.
Немає жодної технічної причини, чому це не могло змінитися в майбутньому, але я б не затамував подих через це, що відбудеться короткостроково.
Тим не менш, Objective-C і Swift насправді не надто страшні ...
2016 ред
Зараз доступний Javascript із фреймворком NativeScript.
Ви можете використовувати PyObjC і на iPhone, завдяки чудовій роботі Джея Фрімена (Саурік). Див. Розділ Програми 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. Філ Хассі опублікував гру під назвою «Слони! використовуючи цей підхід. Ось докладніше,
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 в Native Swift / Obj-C програми.
Це підтримує імпорт бібліотек Python та запуск скриптів Python (навіть із зазначеними аргументами командного рядка) безпосередньо з коду Native Swift / Obj-C.
Моя компанія фактично обгортає нашу інфраструктуру (спочатку написану на Python) у власному додатку iOS! Це працює дуже добре, і зв’язок між частинами можна легко досягти за допомогою моделі клієнт-сервер.
Ось приємна бібліотека від Beeware із шаблоном cookiecutter, якщо ви хочете спробувати запустити сценарії Python у своєму додатку для iOS: https://github.com/beeware/Python-Apple-support/tree/3.6 .
Технічно, доки інтерпретований код НЕ завантажується (за винятком JavaScript), додаток може бути схвалено. Фреймворк Rhomobiles "Родос" робить саме це, поєднуючи мобільний Ruby, полегшену версію Rails та ваш додаток для розповсюдження через магазин додатків. Оскільки і інтерпретатор, і інтерпретований код упаковані в остаточну програму - Apple не вважає це неприємним.
http://rhomobile.com/products/rhodes/
Навіть після останнього прес-релізу Apple - додатки Родос (мобільний рубін) все ще доступні в магазині додатків. Мені важко повірити, що tinyPy або pyObjC не знайдуть місця, якщо є охоче співтовариство розробників.
Ви можете зробити це за допомогою PyObjC, звичайно, зі зламаним телефоном. Але якщо ви хочете отримати його в App Store, вони не дозволять, оскільки він "інтерпретує код". Тим не менш, ти можеш використовувати Shed Skin , хоча я не знаю, щоб хтось це робив. Я не можу придумати жодної вагомої причини, щоб це зробити, оскільки ви втрачаєте динамічне введення тексту і можете також використовувати ObjC.
Єдиною важливою «зовнішньою» мовою для розробки iPhone, яку я знаю з напівзначною підтримкою з точки зору фреймворків та сумісності, є MonoTouch , середовище C # /. NET для розробки на iPhone.
Я думаю, що це було неможливо раніше, але нещодавно я чув про PyMob, що здається цікавим, оскільки додатки написані на Python, а кінцеві результати - власні вихідні коди на різних платформах (Obj-C для iOS, Java для Android тощо). Це, безумовно, досить унікально. Це веб-сторінка пояснює це більш докладно.
Я ще не зробив пострілу, але скоро подивлюсь.