プリンス・マクリーン
· 2分で読めます
3.3.2 ルールが最初に公開されたとき、制限では、iOS アプリは元々 Objective-C、C、C++、または JavaScript で記述されている必要があり、「Apple の文書化された API および組み込みインタープリターによって解釈および実行されるコードを除き、解釈されたコードはアプリケーションにダウンロードしたり使用したりすることはできません」と規定されていました。
Apple の目標は、サードパーティが iPhone 開発者を Apple 独自の Xcode 開発ツールの使用から切り替え、独自のミドルウェア メタプラットフォームに依存させることを阻止することに限定されているようです。
その最も明白な例は、Adobe が Flash Professional CS5 アプリケーションを iPhone アプリをエクスポートできる製品に変え、Apple 独自の Cocoa Touch ではなく Flash をプラットフォームとして中心としたクロスプラットフォーム開発を促進しようとした取り組みです。
Apple の 3.3.2 制限は、同社がそのようなアプリを iTunes Store で販売することを拒否する意向を明らかにした。同社の最高経営責任者であるスティーブ・ジョブズ氏は後に、この主張はサードパーティのミドルウェアが Apple とその開発者の間に割り込んで iPhone プラットフォームの進行中の開発ペースを遅らせることを避けるための努力だったと説明した。
Luaはどうですか?
しかし、この制限の文言は、開発を迅速化するために汎用的で再利用可能なコード エンジンやライブラリを使用する多数のゲームを含む、解釈されたコードを含む可能性のあるすべての iOS アプリも対象としているようです。
Adobeはこのアイデアに飛びつき、iOSでFlashツールを使った開発が制限されれば、Unity 3DやLuaといった人気のゲームエンジンやライブラリも利用できなくなるのではないかという懸念を広めようとした。こうした状況は、Appleが既に承認している(そしてしばしばターゲットプロモーションの対象となっている)多くの人気iPhoneゲーム、例えば「Tap Tap Revenge」や「Rolando」などを危険にさらすことになるだろう。
3.3.2セクションの最新の変更は、iOS開発への脅威となるミドルウェアメタプラットフォームをブロックするためだけに、Appleが既存の人気タイトルを放棄せざるを得なくなることを示唆しています。Apple OutsiderのMatt Drance氏が公開したiOS SDKの最新の文言には、Appleがアプリを承認する際に利用できる追加オプションが明記されています。
「前述にかかわらず、Apple の事前の書面による同意があれば、アプリケーションは、その使用がアプリケーションの意図され宣伝されている目的と一致する小さな機能または機能性を提供するためだけに行われる場合に限り、埋め込まれた解釈コードを限定的に使用できます。」
Drance 氏は、「これらの新しい用語は、コンパイルされていないコードを持つアプリとメタプラットフォームの間に違いがあることを認めているようだ」と指摘しています。