
iPhone SDK、DRM、そしてオープンツールチェーン
- Lamiyi
- 0
- rhahw
NerveGas氏は、現在開発者が使用しているiPhone SDK、DRM、そしてオープンツールチェーンについて自身の考えを共有しました。NerveGas氏は『iPhone Open Application Development』の著者です。この本はAmazonでこちらから予約注文できます。
元の投稿はhackint0shでご覧いただけます。また、ご参考までに下記にも掲載しておきます。
----------
AppleのSDKのリリースにより、開発コミュニティは、機能が制限され、メソッドが欠落し、配布に関する厳しい監視が課せられるなど、期待されていたほどのものではないことを痛感しました。開発プラットフォームがこれほどまでにDRMで保護されるとは誰も想像していませんでした。しかし、コンパイラ自体にDRM鍵交換コンポーネントが含まれているようです。開発者はどうなるのでしょうか?Apple SDKを使ってDRMフリーのソフトウェアを開発するのは不可能のようです。おそらく、動作させるだけでもAppleの承認が必要になるでしょう。
AppleのSDK制限は、既に機能的なオープンSDK(ツールチェーン)、コミュニティによる配布チャネル(Installer.app、PXLなど)、そして膨大なユーザー層を擁するオープンソースコミュニティを痛烈に批判しているように見受けられます。Jailbreakme.comで有名なNick Penree氏は、わずか数週間のうちに、100万人以上のユーザーが彼のサイトを利用してNullRiverのコミュニティインストーラーをデバイスにインストールしたことを発見しました。Appleは実際、オープンコミュニティに遅れをとっており、オープンソースコミュニティが商業的な取り組みを模倣しているというより、むしろAppleこそが今日、オープンソースコミュニティを模倣しようとしている恥ずべき存在となっています。結果として、AppleのSDK制限の多くは、この確立されたコミュニティを特に標的としているように見えます。AppleはNullRiverのインストーラーアプリだけでなく、PXLなどのソフトウェアインストーラーも禁止し、実質的にiTunesからサードパーティの配布チャネルを締め出しました(これは不公平な競争に相当する可能性があります)。また、SDKとアクセサリの通信機能を制限することで、アクセサリ市場における完全な支配権を確保しています。最後に、AppleはiPhone上で「他のプログラムのコードを実行する」ソフトウェアを禁止することで、任天堂などのゲームメーカー、そしてSunやAdobeといった企業との契約獲得の可能性を確保しました。つまり、企業はJava、Flash、ビデオゲームエミュレータ(その多くは既にオープンツールチェーンで利用可能)といったソフトウェアをリリースするために、特別な契約を結び、Appleに多額の身代金を支払う必要があるということです。
朗報なのは、AppleがiPhone上での「無許可」ソフトウェア開発を阻止しようと試みているにもかかわらず、今ではオープンツールチェーンとAppleのSDKという2つの異なるSDKから選択できるようになったことです。自社のソフトウェアにDRM制御を必要とし、AppleのSDKによる制限を受け入れられる企業は、「公式にサポートされている」コンパイラとAppleのサポートがあればうまくいくでしょう。しかし、Appleが開発コミュニティの残りの部分、つまりオープンソース開発者や小規模ソフトウェアハウス(おそらく2009年までは日の目を見ないでしょう)を見捨てている一方で、オープンツールチェーンは、iPhone向けのDRMフリーアプリケーションを開発する唯一の手段であり、iTunesと同じくらい多くのユーザーに(ただし、iTunesほど固定的ではないものの)リーチできる配信チャネルを提供しています。オープンツールチェーンはLinuxとWindowsでも動作し、開発者が高度なAPIを使用することを制限することはありません。神が意図したように、アプリケーションをバックグラウンドで実行することさえ可能です。さまざまな開発チームのおかげで、iPhone にカスタム アプリケーションを追加するのが非常に簡単になりました。実際、今ではおばあちゃんでも数回クリックするだけで追加できます。iTunes を使用するよりも簡単です。
今こそ、これまで以上にコミュニティがオープンソースのツールチェーンと、iPhone向けソフトウェアを自由に開発・実行できる環境をサポートする必要があるようです。なぜでしょうか?AppleのSDKはエンタープライズ向けに設計されており、他のユーザーを遠ざけることをためらわないからです。幸いなことに、私たちはほぼ1年かけて成熟した無料のツールチェーン、素晴らしい(そして無料の)サポート基盤、そして誰でもダウンロードして使える数百もの優れたiPhone用アプリケーションを既に提供しています。
多くの人が気づいているように、Apple SDKは、発売当初にiPhoneを際立たせていた機能の多くを奪ってしまったようです。プログラムをバックグラウンドで実行するといったシンプルな機能でさえ、Apple SDKでは機能不全に陥っています。幸いなことに、オープンツールチェーンが使用するAPIは、Appleが自社アプリケーション開発に使用している「本物のSDK」に近いようです。Apple SDKで使用するオブジェクトのほとんどは、これらの本物のオブジェクトを「ラッパー」化したものであり、機能が制限されています。まるで「フィッシャープライス」SDKのような存在で、開発者は不満をぶちまけられる一方で、Appleは「本物の」ソフトウェアにはプライベートAPIを使用しています。Apple SDKを使えばiPhoneアプリケーションに似たアプリケーションを作成できますが、オープンツールチェーンを使えば、Apple独自のアプリケーションと同じオブジェクトを使って、中身まで掘り下げてアプリケーションを開発できます。そして、そうでなければ制限されていた、Apple独自のアプリケーションと同じ派手なエフェクトも使えるのです。
よく考えてみると、現在保留されている契約の多くは、実際の技術的なハードルよりも、iPhoneの流通チェーンを独占しようとすることに関係している可能性が高い。Adobe Flashを例に挙げてみよう。Flashは400MHzのマシンでも問題なく動作し、それより低速の携帯電話でも問題なく動作する。技術的な問題がこれを阻んでいるというよりは、Adobeは単に「他のコードを実行する」コードをiPhoneに組み込むためにAppleが要求する身代金を払いたくないだけなのだろう。AppleのSDKに関するあらゆる制限や利用規約は、市場支配が鍵となる要因であることを示唆している。
念のため確認ですが、Apple SDKに含まれる「Aspen」フレームワークは、オープンツールチェーンで使用されているAPIを完全にサポートしているようです。おそらく、これらはApple自身のアプリケーションで実際に使用されている低レベルAPIだからです。Apple SDKでは多くのメソッドがヘッダーから削除されていますが、フレームワーク内には依然として残っています。例えば、UIHardwareやUIKeyboardといったお馴染みのメソッドはすべて含まれています。
30b32e9c t +[UIHardware deviceOrientation:]
30b3375c t +[UIHardware fullScreenApplicationContentRectForCurrentDeviceOrientation]
30b32e40 t +[UIHardware fullScreenApplicationContentRect]
30be7744 t +[UIKeyboard activeKeyboard]
30be77d4 t +[UIKeyboard defaultSizeForInterfaceOrientation:]
30be7818 t +[UIKeyboard defaultSizeForOrientation:]
30be778c t +[UIKeyboard defaultSize]
... など
これは何を意味するのでしょうか?非常に心強いことです。2.0では、オープンツールチェーン上で作成された既存のアプリケーションを、ほとんど、あるいは全く変更せずに実行できるようになる可能性が高いからです。これは非常に理にかなっています。そうでなければ、Appleは自社のアプリ(同じAPIを使用している)を書き直さなければならず、Q/A(ソフトウェアをベータ版の品質に戻すこと)において大きな問題が発生するでしょう。将来的に状況が変わった場合に備えて、Appleがツールチェーンアプリケーションのサポートを中止しようとした場合でも、ツールチェーンアプリケーションを利用できるようにするための互換性ライブラリのセットを既に構築し始めています。
現状では、Apple SDKがまだ一般普及の準備が整っていないため、2009年に向けてオープンツールチェーンが主流になる可能性が高いでしょう。多くの部分が正しく機能しないか、全く機能しないようで、現時点ではこれらのアプリケーションをiPhoneで実行する方法はありません。Appleからの発言から判断すると、6月には開発者プログラムへの参加が限られた数の開発者に限定される可能性が高いでしょう。オープンツールチェーンは現在も稼働しており、ほぼ1年かけて成熟し、大規模な配布基盤を持つ非常に堅牢なSDKへと成長しました。開発者の皆様には、引き続きオープンツールチェーンをご利用いただくことをお勧めします。そして、オープンツールチェーンは今後も長く利用され続けると考えています。
著者: NerveGas
