マルチタスクを始め大量の新 APIが加わった iPhone OS 4.0 プレビューは発表と同時にダウンロード可能になりましたが、入手にあたって同意しなければならない開発者規約は直前にさりげなく変更されています。注目はプライベートAPIの利用を禁じた 3.3.1節。以前の文言は:
3.3.1 - Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
(アプリケーションは公開されたAPIのみを、アップルが指定した方法で利用しなければならない。プライベートAPI の利用は認められない)
のみでした。アップルが内部用に使っている、将来変更されるかもしれない「隠し」APIを使わずに、用意された材料でお行儀よく動くようにしなさいという、シンプルでよくある注意事項です。しかし変更後の3.3.1節は上記の一文にかなり長い文章が追加されており、大意を訳せば:「アプリはObjective-C, C, C++で書かれたもの、もしくは iPhone OS の Webkit エンジンで動くJavaScrpit で書かれなければならない。また、公開 API に直接リンクされる形でコンパイルしてよいのは、C, C++, Objective-C で書かれたコードのみ (例:互換レイヤーやツールを用いて公開APIにリンクするアプリは禁止する)」。

つまり Adobe が Flash CS5の目玉機能としてアナウンスした「Flash から iPhone ネイティブアプリへの変換機能」などを使ったアプリは許されないことになります。短く言えばクロスコンパイラの禁止。Flashからの変換以外にも、C# や .NETアプリを iPhone 向けに変換するツールもアウトです。(ゲーム用のスクリプト言語を変換する系、あるいは直接 コンパイルするのではなくObjective-Cソースに変換する系の扱いは不明確)。

規約変更の理由としては、たとえ公開APIのみを利用していても、Objective-C, C, C++で書かれていないとアップル側で調査できず承認に差し障るという主張が考えられます。が、意図として考えられるのはやはり Flashの締め出し。iPhone や iPad の Flash非対応についてはアップル・アドビ双方の建前本音が絡むややこしい経緯があり、今回の iPhone OS 4 イベントでの質疑応答でも、「将来的にFlash や Javaをサポートする計画は?」という説明にジョブズは「No.」と答えるなどFlashを認めない方針を明確にしていました。

Adobe が AIR や Open Screen Project を通じて「Flashで書けばどのデバイスでも動きます。開発プラットフォームはFlashで!」とアピールしている一方、アップルとしては自社の製品が他社プラットフォームの単なる再生機になるなど言語道断、アプリはあくまで アップルがコントロールするフレームワークに収めたいという、開発者の奪い合い・プラットフォーム覇権争いの一環と考えることができます。Flashアプリ開発者はもちろん雑誌・新聞コンテンツのデジタル化にFlashを選んだコンテンツホルダー、ひいてはクロスプラットフォーム志向の開発者全般にとって悩ましい方針変更です。

Daring Fireball
source Apple

iPhone アプリ開発の制限強化、Flash他から変換を締め出し
広告

0 コメント

広告