AppleのiPhone 4 SDKライセンスは、移植されたFlash、Java、Monoアプリを禁止している。

AppleのiPhone 4 SDKライセンスは、移植されたFlash、Java、Monoアプリを禁止している。

プリンス・マクリーンのプロフィール写真プリンス・マクリーン

· 2分で読めます

Apple は、iPhone 4.0 SDK の iPhone 開発者プログラム ライセンス契約を更新し、「中間の翻訳または互換性レイヤーまたはツール」を使用したアプリの開発を明確に禁止しました。これには、Adobe の Flash、Sun の Java、または Microsoft の Silverlight/Mono が含まれます。

Appleはこれまで常に、iPhoneアプリにおける外部のフレームワーク、ランタイム、プラグインの使用を禁止してきた。この措置により、Adobeやその他の企業がFlash、Java、Silverlightなどのコンテンツを実行できるアプリを提供することを妨げてきた。

この制限により、Adobe は、開発者の既存の Flash コンテンツを救済しようと試みました。その試みとは、次期 Creative Suite 5 に、Flash Professional アプリケーションが既存の Flash コンテンツをネイティブ iPhone アプリケーション パッケージにエクスポートできるようにする機能を追加することでした。このパッケージは Flash ではなくなったため、再生に外部ランタイムは必要なくなり、iTunes App Store で合法的に販売できるようになりました。

しかし、iPhone 4では、これまではプライベートAPI(つまり、Appleが完成、文書化、公開していない開発機能)の使用のみを禁止していた開発者ライセンスの条項が拡張され、他言語または他の開発環境でiPhoneアプリを開発し、それをネイティブiPhoneアプリに翻訳またはクロスコンパイルすることも禁止されるようになりました。この条項(セクション3.3.3)は、以下のように変更されました。

アプリケーションは、Apple が規定する方法でのみドキュメント化された API を使用できます。プライベート API を使用したり呼び出したりすることはできません。アプリケーションは、iPhone OS WebKit エンジンで実行される Objective-C、C、C++、または JavaScript で独自に記述されている必要があり、C、C++、Objective-C で記述されたコードのみがドキュメント化された API に対してコンパイルおよび直接リンクできます (例: 中間翻訳や互換性レイヤー、ツールを介してドキュメント化された API にリンクするアプリケーションは禁止されています)。

この措置により、FlashプロフェッショナルはFlashのActiveScriptを使用してコンテンツを開発し、そのコードをiPhoneに移植することができなくなります。また、開発者はMicrosoftのC#言語で記述されたコードを.NET Frameworkに直接移植し、翻訳されたiPhoneアプリに移植することもできなくなります。

この禁止事項は、HTMLやJavaScriptなどのWeb技術を用いてネイティブモバイルアプリを構築することを目的としたAppceleratorとそのTitanium SDK、あるいは類似のPhoneGapにとっても障害となる可能性があります。この条項は、WebアプリにおけるJavaScriptの使用を具体的に制限しており、ネイティブCocoa Touch APIへのリンクを許可していません。

このニュースは、CS5のFlash Professionalの主要新機能としてFlashからiPhoneへのクロスコンパイラの開発に奔走してきたAdobeにとって、大きな打撃となるだろう。また、iPhone OSとの互換性を維持しながら、モバイル開発とWeb開発をFlashへと移行させるというAdobeの戦略も、このニュースによって帳消しになる。

Appleは、すべてのiPhoneアプリを自社のXcodeツールを用いたネイティブ開発から始めることを義務付けることで、自らが創出した市場にサードパーティ製のミドルウェアプラットフォームが参入するのを阻止できる。これにより、App Storeの価値と売上高はApple独自の開発ツールに有利に留保され、App Storeで販売されるすべてのアプリがApple独自のネイティブツールを用いて開発され、他のソースからクロスコンパイルされたものではないことが保証される。

Apple のこの動きは、Web や他のモバイル プラットフォーム向けに元々設計され、iPhone で動作するように作り直された既存の低品質の Flash ゲームを大量に提供することで、App Store のオリジナル コンテンツを骨抜きにする恐れがある Flash アプリの雑多なソフトウェアに対する防衛攻撃であるようだ。

また、この新しい規則は、モバイル アプリ構築の共通基準として Java または Silverlight/Mono を使用するという希望を消し去り、開発者が Java または C#/.NET を使用してアプリをコーディングし、それを「変換または互換性レイヤー」を使用して iPhone アプリにクロスコンパイルすることを禁止します。