PyObjCを使用すると、Pythonを使用してOS X用のCocoaアプリケーションを作成できます。Pythonを使用してネイティブiPhoneアプリを作成できますか?その場合、どのように作成しますか?
14 に答える
Jay Freeman(saurik)の優れた作品により、iPhoneでもPyObjCを使用できます。PythonのiPhoneアプリケーションを参照してください。
現時点では、これにはジェイルブレイクされたiPhoneが必要であることに注意してください。
現在、iPhone SDKにアクセスできる言語は、C / C ++、Objective C、Swiftのみです。
これが将来変わることができないという技術的な理由はありませんが、私はこれが短期的に起こることについてあなたの息を止めません。
そうは言っても、Objective-CとSwiftはそれほど怖いものではありません...
2016年編集
NativeScriptフレームワークを備えたJavascriptが利用可能になりました。
これは現在、開発者が行うことが許可されているようです: iOS 開発者契約は昨日変更され、Python インタープリターをアプリケーションに埋め込むことを合法にするような方法で修正されたようです:
セクション 3.3.2 — 通訳者
年:
3.3.2 アプリケーション自体は、プラグイン アーキテクチャの使用、他のフレームワーク、他の API の呼び出しなどを含むがこれらに限定されない方法で、他の実行可能コードをインストールまたは起動することはできません。Apple の書面による別段の承認がない限り、Apple の文書化された API および組み込みのインタープリターによって解釈および実行されるコードを除き、解釈されたコードをアプリケーションでダウンロードまたは使用することはできません。上記にかかわらず、Apple の事前の書面による同意を得て、アプリケーションは、アプリケーションの意図および宣伝された目的と一致するマイナーな機能または機能を提供するためのみに使用される場合、埋め込みの解釈されたコードを制限された方法で使用することができます。
新しい:
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には、スタンドアロンの iOS アプリを構築する Xcode プロジェクトとして Python スクリプトをエクスポートできる Xcode へのエクスポート機能があります。
https://github.com/ColdGrub1384/Pytoも調べる価値があります。
iPhone SDK の契約では、(WebView の Javascript の外部で) スクリプト言語を実行することさえ許可されているかどうかについても、かなりあいまいです。私の解釈では、実行するスクリプトがネットワークからダウンロードされない限り (したがって、事前にインストールされたスクリプトやユーザーが編集したスクリプトは問題ないように見えます)、問題ありません。
IANALなど
技術的には、解釈されたコードがダウンロードされない限り (JavaScript を除く)、アプリは承認される可能性があります。Rhomobiles "Rhodes" フレームワークはまさにそれを行い、モバイル Ruby、Rails の軽量バージョン、およびアプリ ストアを介して配布するアプリをバンドルします。インタープリターと解釈されたコードの両方が最終的なアプリケーションにパッケージ化されるため、Apple はそれを好ましくないとは考えていません。
http://rhomobile.com/products/rhodes/
Apple の最新のプレス リリースの後でも、Rhodes アプリ (モバイル ルビー) はアプリ ストアで引き続き利用できます。意欲的な開発者コミュニティがあれば、tinyPy や pyObjC が居場所を見つけられないとは信じがたいでしょう。
もちろん、ジェイルブレイクされた電話を使用して、PyObjCでこれを行うことができます。しかし、App Store に入れようとしても、「コードを解釈する」ため許可されません。ただし、 Shed Skinを使用できる場合がありますが、これを行っている人は知りません。ただし、動的型付けが失われ、ObjC を使用する可能性があるため、これを行う正当な理由は考えられません。
以前はできなかったと思いますが、最近 PyMob について聞いたことがあります。これは、アプリが Python で記述され、最終的な出力がさまざまなプラットフォーム (iOS の Obj-C、Android の Java など) のネイティブ ソース コードであるため、興味深いと思われます。これは確かに非常にユニークです。このウェブページでは、より詳しく説明しています。
まだ試していませんが、近いうちに見てみます。