回答:
現在、iPhone SDKにアクセスできる言語は現在、C / C ++、Objective C、Swiftのみです。
将来的にこれが変更できなくなる技術的な理由はありませんが、短期的にはこれが発生することを期待していません。
とはいえ、Objective-CとSwiftはそれほど怖くない...
2016編集
NativeScriptフレームワークを使用したJavaScriptが現在使用可能です。
Jay Freeman(saurik)による優れた作業により、iPhoneでもPyObjCを使用できます。PythonのiPhoneアプリケーションを参照してください。
現時点では、ジェイルブレイクしたiPhoneが必要です。
これは現在、開発者が許可されていることのようです:iOS開発者契約が昨日変更され、アプリケーションへのPythonインタープリターの埋め込みを合法にするような方法で修正されたようです:
セクション3.3.2 —通訳
古い:
3.3.2アプリケーションは、プラグインアーキテクチャの使用、他のフレームワーク、他のAPIの呼び出しなどを含むがこれらに限定されない、他の実行可能コードをインストールまたは起動することはできません。Appleの書面による別段の承認がない限り、Appleの文書化されたAPIおよび組み込みのインタープリターによって解釈および実行されるコードを除き、解釈されたコードをアプリケーションでダウンロードまたは使用することはできません。上記にかかわらず、アップルの事前の書面による同意により、アプリケーションは、意図され宣伝されたアプリケーションの目的と一致するマイナーな機能を提供する目的でのみ使用される場合、限られた方法で埋め込み解釈コードを使用できます。
新着:
3.3.2アプリケーションは、実行可能コードをダウンロードまたはインストールできません。解釈されたコードは、すべてのスクリプト、コード、およびインタープリターがアプリケーションにパッケージ化され、ダウンロードされていない場合にのみ、アプリケーションで使用できます。上記の唯一の例外は、Appleの組み込みWebKitフレームワークによってダウンロードおよび実行されるスクリプトとコードです。
はい、できます。コードをtinypy(Pythonで制限されています)で記述し、tinypyを使用してコードをC ++に変換し、最後にこれをXCodeでネイティブのiPhoneアプリにコンパイルします。Phil HasseyがElephantsというゲームを公開しました!このアプローチを使用します。詳細はこちら
http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/
iOS開発者契約の更新は、開発者のガイドラインを満たしている限り、好きなように使用できることを意味します。開発者がiOS開発に使用できるものを制限するセクション3.3.1は完全に削除されました。
PythonistaにはXcodeへのエクスポート機能があり、スタンドアロンiOSアプリをビルドするXcodeプロジェクトとしてPythonスクリプトをエクスポートできます。
https://github.com/ColdGrub1384/Pytoも検討する価値があります。
2019アップデート:
Python-iOSの開発は比較的未熟であり、Appleがサポートする開発言語で実現できるネイティブUIと機能をアプリが使用できない(afaik)可能性がありますが、Appleは現在、PythonインタープリターをNative Swift / Obj-Cに埋め込むことを許可しているようですアプリ。
これにより、ネイティブのSwift / Obj-Cコードから直接、PythonライブラリのインポートとPythonスクリプトの実行(コマンドライン引数が指定されている場合でも)がサポートされます。
私の会社は、実際にはインフラストラクチャ(元はPythonで記述されていました)をネイティブiOSアプリケーションでラップしています!これは非常にうまく機能し、パーツ間の通信はクライアント/サーバーモデルを介して簡単に実現できます。
iOSアプリでPythonスクリプトを実行したい場合は、Cookiecutterテンプレートを使用したBeewareのライブラリを次に示します:https : //github.com/beeware/Python-Apple-support/tree/3.6。
技術的には、解釈されたコードがダウンロードされない限り(JavaScriptを除く)、アプリは承認される可能性があります。Rhomobiles「Rhodes」フレームワークはまさにそれを行い、モバイルRuby、Railsの軽量バージョン、およびアプリをapp-store経由で配布するためにバンドルします。インタプリタとインタプリタされたコードの両方が最終的なアプリケーションにパッケージ化されているため-Appleはそれを不快に感じません。
http://rhomobile.com/products/rhodes/
最新のアップルプレスリリースの後でも、Rhodesアプリ(モバイルルビー)はアプリストアで実行できます。tinyPyやpyObjCが、喜んで開発者コミュニティが存在する場合、場所を見つけられないとは信じ難いでしょう。
フレームワークと互換性の点で私が認識しているiPhone開発の唯一の重要な「外部」言語は、iPhoneで開発するためのC#/。NET環境であるMonoTouchです。
以前は不可能だったと思いますが、最近PyMobについて聞いたことがあります。これは、アプリがPythonで書かれていて、最終的な出力がさまざまなプラットフォーム(iOSのObj-C、AndroidのJavaなど)のネイティブソースコードであるため、興味深いようです。これは確かにかなりユニークです。このウェブページはそれをより詳細に説明します。
まだ試したことはありませんが、すぐに見ていきます。