ある 報告 によると,Apple が iPhone の開発ライセンスを変更して,Objective- C,C,C++ 以外の言語で記述されたアプリケーションや “中間言語や互換性レイヤ,あるいはツールを通じて” API にアクセスするアプリケーションが禁止されることになるという。反響は大きく,産業界に波紋を広げることになりそうだ。
iPhone や iPad,iPod Touch 向けアプリケーションの開発には iPhone SDK が必要だ。その SDK 3.2 以前の使用ライセンス iPhone Developer Program Licence Agreement (DPLA) には,次のような条項がある。
3.3.1 — アプリケーションは公式 API (Documented API) のみを,Apple の指示した形式で使用することができる。プライベート API を使用あるいはコールしてはならない。
iPhone OS の最新版は 4.0 で,SDK としては現在ベータ版が,登録された開発者を対象に提供されている。関係者外秘である DPLA の変更内容の中から John Gruber 氏の報告 が取り上げたのは,3.3.1 項が次のように変更されたことだ。
3.3.1 — アプリケーションは公式 API (Documented API) のみを,Apple の指示した形式で使用することができる。プライベート API を使用あるいはコールしてはならない。またアプリケーションは,Objective-C,C,C++,または iPhone OS の WebKit エンジン上で動作する JavaScript をオリジナルとして記述されなければならない。コンパイルおよび公式 API へのリンクは,C,C++,Objective-C で記述されたコードに限り許可される (つまり中間言語,互換性レイヤ,あるいはツールなどを経由して公式 API にリンクしてはならない)。
基本的にはこれは,iPhone 向けに記述されるアプリケーションは Objective-C,C,C++,あるいは JavaScript で記述されなければならない,クロスコンパイラは禁止される,という意味に解釈される。この変更は多数の企業に影響を与えそうだ。さらにライセンスの記述が必ずしも明確でないことが,多くの憶測を呼んでいる。
Apple のこの動きに対して,直接の影響を受けると思われる企業のひとつが Adobe である。同社は先日,Adobe Creative Suite 5 (CS5) をマーケットにリリースしたばかりだ。その CS5 の主要機能のひとつとして Adobe が宣伝している のが Flash FLA の IPA へのエクスポート機能だ。同社 Creative Solutions 事業部のトップである John Loiacono 氏によると,これは iPhone にデプロイ可能なアプリケーションを作成可能にするものだという。
Flash 開発ツールによって,iPhone 上でネイティブ動作するアプリケーションの構築が可能になったことを皆様にご報告できるのは,私たちにとって大きな喜びです。
このアプリケーションは,実行時コンパイルされるコードを含んでいない。従って,App Store で販売されている他のアプリケーションと同じ承認プロセスを経由するはずだ。しかし Apple による開発ライセンスの変更は,そのすべてを変えることになる。
Adobe の CTO である Kevin Lynch 氏は,新たなライセンス条件について次のようにコメントしている。
Apple は昨日,開発者の利用可能な技術を制限する SDK ライセンスの修正案をリリースしました。[…]
それでも私たちは,CS5 でこの機能を提供するつもりです。Apple がルールを変更した時点で,アプリケーションが許可されるかどうかは彼ら次第です。
Unity 3D には,複数のプラットフォームをターゲットとするゲーム開発用のツールがある。このツールを使用して作成された iPhone アプリケーションの数は多く,中には App Store でベストセラーになっているものもある。今回の変更による Unity への影響 について,Alex Blewitt 氏は次のように述べている。
3D ツールとしての Unity は,複数のプラットフォームにおいて使用され,ゲーム開発を迅速化することができます。しかしこれは,禁止対象の “互換性レイヤあるいはツール” に該当します。
Gruber 氏は,Unity への影響には懐疑的 だ。
当初は Unity3D を使用して書かれたゲームは禁止対象であると思っていましたが,そうはならないかも知れません — Unity3D は完全な Xcode プロジェクトと Objective-C ソースファイルを生成するので,クロスコンパイラというより,どちらかと言えばプリプロセッサに相当するものとも考えられるからです。確証はありません。ただし,あえて言うならば,開発言語が C# であるという点は,このルールに対する Unity3D の立場を不利なものにします。
Unity 3D 自身としては何も言うことはない。彼らはすでに Apple とコンタクトを取り,事態が明らかになるのを待っている状態だ。
最も望ましい結論は,私たちが認められることです。しかし今それを保障するのは,明らかに無責任でしょう。私に約束できるのは,私たちが今後もこの仕事に全力を上げて取り組むこと,新たな情報があれば速やかに – でき得る限り速やかに,それをお伝えすること,それだけです。
ライセンス変更の影響を受けるツールは他にもたくさんある。MonoTouch,Titanium,PhoneGap,Ansca Corona などがそうだ。彼らが一様に発表しているのは,今回の変更に関する Apple の意図が正確には分かっていないこと,そしてすべて問題ないと彼らが自負していることだ。
MonoTouch: 私たちは Apple に対して,彼らの意図を明確にするよう働きかけているところです。4.0 SDK の最終リリースまでに,彼らが方向修正を行う余地は十分にあると考えています。[…]
Apple の動機が技術的なものであるか,あるいは Apple 製ツールチェーンの使用を確実にすることにあるならば,MonoTouch が SDK の利用条件を満たし続けることは難しくありません。MonoTouch は Mac OS X 上でのみ動作しますし,Xcode や iPhone SDK とも強く統合されているからです。
Appcelerator (Titanium について): 私たちは,私たちの解釈している iPhone OS 4.0 ToS (Term of Service,利用規約) に完全に準拠していると考えています。[…]
Titanium を使用する前提条件として,開発者は Apple iPhone SDK と Apple XCode 開発ツールチェーンをインストールする必要があります。さらに Titatium ベースの iPhone/iPad アプリケーションを開発するためには,事前に Titanium を Macintosh にインストールしなければなりませんし,Apple Developer メンバシップへの加入も必須です。
Titanium はアプリケーション生成時,通常の XCode プロジェクトと Object-C (ある場合は C/C++) コードを出力します。それから xcodebuild を実行して,その XCode プロジェクトを Apple の公式 API を使用するネイティブアプリケーションにコンパイルします。
PhoneGap: 新たな方針について心配する必要はありません。phonegap アプリケーションは Apple によって承認済だからです。
Ansca Corona: Corona に関しては問題ないと考えています。私たちは,Apple と Android デバイス用のマルチプラットフォームなゲームおよびアプリケーション開発のために,最高のツールを提供することを約束します。そして今後も機能拡張を続けて,Corona をリリース毎によりよいものにしていきます。
今日に至るまで,Apple が私たちのライセンス非準拠に関して発言したことは,公式にも非公式にもありません。しかし4月3日の iPad ストアのグランドオープンに際して,Corona を利用したいくつかのアプリケーションが Apple に承認されているという事実は,私たちが引き続き規約に準拠していて,なおかつ iPhone/iPad のエコシステムに多大な価値を与える存在である,という確信を深めてくれています。
Apple の動きには多くが困惑し,あるいは怒りを覚えている。起業家で開発者でもある Dan Grigsby 氏は,iPhone から離れる ことを決心した。
Apple が App Store を管理すること自体は構いません。彼らが App Store を自らのブランドの延長として扱うというのなら,それもいいでしょう。それが彼らの目指すところならば,毒にも薬にもならないガラクタは全部取り去って,App Store を - 文字どおり - 絞り込んだものにした方がいいと思います。ただしその場合は,Android のように無規制で抵抗のない,App Store 以外の配布メディアも別に提供するべきです。
私には信念があり,Apple の行動はその信念を傷付けました。ですから,私は iPhone に関する開発をやめることにしました。このように許しを請わなければならない環境で,これ以上仕事を続ける気はありません。
元 Sun のディレクタで XML の共同編集者である Tim Bray 氏は,最近になって Google に参加し,彼らのモバイル OS の推進に関わっている。Android の方がより自由である,という考えからだ。
Apple がユーザにインターネットの恩恵を提供する一方で,実行可能なプログラムやアクセスを許可するスタック,さらには開発者同士の対話までもコントロールしようとしているのは確実です。
彼らは間違っていると思います。そしてこの仕事が,それを証明するチャンスを与えてくれると思うのです。
App Store 以外にアプリケーションを直接配布する手段を持っている企業は,今回の変更の影響を受けない ようだ。ただし混合モデルを使用する,すなわち直接配布と App Store 経由配布を並行して行なうのならば,このライセンスに準拠する必要がある。
Apple は単に iPhone に提供されるアプリケーションが 高品質 で,iPhone の全機能を活用することを確実にしたいのだ,という見方もある。その一方で iPhone のネイティブなツールである Xcode への対抗品開発に対して,Apple がドアを閉ざしてしまうことに不満を唱えるものもいる。いずれにしても Apple には,自らの立場を明らかにすることが期待されている。