ClickToFlash における HTML5 の Adobe Flash サポート
ClickToFlashを使用すると、SafariユーザーはWeb上のFlashコンテンツを分離し、許可した場合にのみ再生されるようにすることができます。Flashコンテンツはバウンディングボックスに置き換えられ、ユーザーは(広告などの)アイテムを無視したり、プレースホルダーをクリックして必要に応じてFlashの再生を開始したりできます。
さらに、このプラグインは YouTube Flash ビデオのリクエストをより高品質の H.264 ビデオのリクエストに変換できるため、デスクトップ ユーザーは iPhone と同じように Flash をバイパスし、ブラウザー自体に組み込まれた HTML5 サポートを使用して YouTube ビデオを再生し、直接 H.264 で再生できるようになります。
以下の例は、YouTube から配信されている同じ HD クリップを比較したものです。まず、YouTube 標準の灰色の再生コントロールを使用して Flash でレンダリングし、次に ClickToFlash を使用して Google に非 Flash バージョンをリクエストし、H.264 で再生しました。ネイティブ HTML5 バージョンでは、Safari は Google が Flash を使用して作成したコントロールではなく、独自の QuickTime X 再生コントロールを使用します。再生中は、Safari のネイティブの黒い再生バーは消えます。ClickToFlash プラグインを使用すると、ユーザーは H.264 ビデオを全画面再生で表示することもできます。
ClickToFlashは、動画の高画質化と、動画クリップ内をスムーズにナビゲートするための機能的で正確な再生コントロールに加え、HTML5を使用した直接再生により、FlashプラグインがCPUサイクルやノートパソコンのバッテリーを消費することを防ぎます。YouTube以外では、バックグラウンドでFlash広告をアニメーションさせるためだけにウェブページの読み込みでプロセッサが限界に達することはありません。ナビゲーションコンポーネントなどの重要なFlash要素は、ClickToFlashによって作成されたプレースホルダーをクリックすることでアクティブ化できます。
下の例では、ClickToFlash を搭載した Safari は、New York Times のサイトではデフォルトで Flash コンテンツを読み込みませんが、ユーザーのリクエストに応じて個々の項目を読み込みます。iPhone では、Flash コンテンツは読み込まれず、読み込まれることもできません。Flash を使用するほとんどの広告ネットワークは現在、iPhone のユーザーエージェントを検知し、Flash 以外の代替広告バナーを提供しています。Flash をオプトアウトするユーザーが増えれば、iPhone に適応してきたように、広告市場もそれに追随するでしょう。動画も H.264 に移行し、動画クリップの表示に Flash を必要としない最新のブラウザをサポートするようになります。
ClickToFlashの主な目標の一つは、ウェブからFlashを可能な限り排除し、ユーザーが見たいFlashだけを選択できるようにすることです」と、プラグインの開発ウェブサイトには記されています。同グループは、現在Flashを使用して動画再生を行っている他のサイトにも、直接動画再生をサポートするための支援を求めています。
シンプルな HTML5 ビデオ タグで配信される H.264 ビデオのサポートにより、Web 上の Flash の主な需要が減少し、Web 開発者が HTML5 の新しい Canvas 機能を使用して Flash や Silverlight などのプラグインを使用せずに Web ページ内で高度な描画効果を実行することに慣れてくるにつれて、特に WebGL ハードウェア アクセラレーション 3D などの新しい取り組みが普及し始めると、Adobe はオープン Web 標準を使用する代わりにクローズド Flash 開発を引き続き推進するという困難な戦いに直面するだろうと多くの観測者が報告しています。
3 ページ中 2 ページ目: Adobe の Flash モバイル戦略、iPhone アプリの作成。
ClickToFlashがデスクトップ版Flashの排除に取り組んでいる一方で、AdobeのFlashとHTML5の争いはモバイル分野で真っ向から戦われています。Appleは、デスクトップ版Flashも、スマートフォン向けFlashのサブセットであるFlash LiteもサポートしないままiPhoneを発表しました。AppleがiPhoneでのFlash使用にますます反対を強める中、AdobeはiPhone向けFlash Playerを開発中で完成間近であると発表し、Appleもそのプロジェクトに関与している可能性を示唆しました。
しかし今週、Adobe が今後 1 年間で他のモバイル プラットフォーム向けの Flash Player 10 の新バージョンをリリースし、年末までに Windows Mobile と Palm の WebOS 向けの最初のパブリック ベータ版をリリースし、続いて 2010 年中に Android、Symbian、RIM の BlackBerry OS 向けのベータ版をリリースするという発表がなされ、状況は一変した。これらの発表には、市場で最も注目されているモバイル デバイスである iPhone/iPod touch については触れられていなかった。
(最初の公開以降、RIM が Open Screen Project と連携していることを注記して更新。Adobe は「この連携により、完全な Flash Player ブラウザ ランタイムが BlackBerry スマートフォンに提供される予定です」と述べています。)
Adobeは、近日リリース予定のCS5 Flash開発ツールでネイティブiPhoneアプリの開発が可能になると発表し、iPhone開発への取り組みを加速させました。しかし、この開発ツールで開発されるアプリはFlashではなく、スタンドアロンアプリ内、あるいはWebページに埋め込まれたアプリ内を問わず、iPhone上でFlashを再生できるわけではありません。
Flash CS5を使用したiPhoneアプリの作成
Flash「アプリケーション」は、HTML、CSS、JavaScriptで作成されたオープンで標準的なウェブコンテンツを、Adobe独自の.swfファイルに置き換えます。.swfは、ウェブコンテンツファイル(グラフィックやムービーなど)をAdobe独自のECMAScript(JavaScript)であるActionScriptでラップしたクローズドバイナリファイルです。CS5では、Flash開発ツールにより、新しいFlashプロジェクトを.swfファイルではなく、標準的なiPhoneアプリとしてエクスポートできるようになります。
Adobeは、Appleがサポートし、MacおよびiPhone開発ツールXcodeで使用されているオープンソースコンパイラ技術であるLLVM(Low Level Virtual Machine)を用いてこれを実現しています。AdobeのFlash開発アプリの次期バージョンでは、Flash ActionScriptをネイティブiPhoneコードにコンパイルするだけになります。これは、既存のツールでiPhone開発者がJava、Scheme、その他の言語でコードを記述し、それをCまたはObjective-CにコンパイルしてネイティブiPhoneアプリとして利用できるのと同様です。
iPhoneは、いかなる種類の仮想マシンを介しても代替言語をサポートしないよう設計されているため、ARMプロセッサ向けにコンパイルされたネイティブC/Objective-C言語以外で、Java、Flash、.NET、Silverlightなどの「生の」言語を実行することはできません。これはAppleのSDK契約の条項で定められています。ただし、既存のコードをネイティブC/Objective-C言語にコンパイルし、そこからiPhoneアプリを作成することについては、制限はありません。
3 ページ中 3 ページ目: Flash のさまざまな側面をモバイルに移植します。
既存の Flash プロジェクトを iPhone に移植するには、追加の作業が必要になります。Adobe は、iPhone の 320x480 解像度は Web ユーザー向けの Flash アプリのほとんどが対象としていないこと、また正確なマウス ポインターの使用を想定して設計されたコンテンツではタッチ ナビゲーションが機能しないことを指摘しています。
Adobeの広報担当者であるアディティア・バンソド氏は、新ツールを発表するブログ記事の中で、「デスクトップアプリケーション開発でよく用いられる特定の動作は、必ずしもiPhoneには当てはまらない」と述べています。また、同氏は「iPhoneはデスクトップコンピュータではないことは明白です。非常に強力で洗練されたハードウェアを搭載していますが、デバイスの世代、利用可能なメモリ容量、そしてアプリケーションが利用できる処理能力によって、その性能は大きく異なります」と警告しています。
Adobe の iPhone 向けアプリケーションに関する FAQ には、さらに次のように記載されています。「iPhone および iPod touch のプロセッサは、ほとんどのデスクトップ PC や Mac のプロセッサよりも大幅に低速です。そのため、コンテンツの実行速度はデスクトップ パソコンで実行する場合よりも遅くなる可能性があります。ただし、具体的な速度差はコンテンツによって異なります。」
Flashの多様な側面
Adobeはまた、iPhoneアプリ用に変換するFlashコンテンツはすべて、Flash 9で導入されたActionScript 3.0を使用する必要があると述べています。以前のバージョンのFlashではActionScript 1.0または2.0が使用されていましたが、これらはActionScript 3.0とは全く異なる仮想マシンで実行されます。デスクトップFlashプラグインは、既存のActionScript 1/2バイトコードを再生するための仮想マシンと、ActionScript 3.0を実行するための仮想マシンの2つの異なる仮想マシンを提供します。
Adobeのモバイル向けFlash Lite 3.0の既存バージョンはActionScript 2.0のみをサポートしているため、Flash Liteでは最新のFlash 9または10コンテンツを実行できません。Adobeが今後1年間でモバイルユーザー向けにリリース予定の新しいFlash 10プレーヤーはActionScript 3.0のみをサポートするため、Flash Liteで動作するように設計された従来のFlashコンテンツは新しいデバイスでは動作しなくなります。
この多様性はデスクトップ版Flashの肥大化を助長しています。デスクトップ版Flashは、複数の仮想マシンを使ってレガシーコンテンツを実行できるリソースがあるため、最新のFlashコンテンツの導入を強制する努力をしていません。しかし、これはモバイルの世界には当てはまりません。モバイルでは、バッテリー寿命と処理能力の制約により、巨大なデスクトップFlashプラグインとその2つの仮想マシンは機能しなくなります。
Adobeは、新しい3.0バイトコードのみをサポートするFlash 10の「完全」モバイル版をリリースする計画を進めており、これにより、2年以上前にリリースされた既存のFlashコンテンツはすべて、突如として陳腐化してしまうことになります。これには、Adobeの現在のモバイル戦略であるFlash Liteで動作するように設計されたコンテンツも含まれます。その結果、モバイルFlash開発者は、コンテンツを新しいモバイルプレーヤーで動作させるために、Flashコードをすべて書き直す必要に迫られ、Flashを使いたいと考える本来の大きな理由、つまりその広範なインストールベースが損なわれることになります。
さらに、iPhone がモバイル Web トラフィックの約半分を消費していることから、モバイル Flash 開発者は、来年中には Flash Player 10 を実行できるようになるはずの iPhone 以外のプラットフォームをターゲットにするためだけに、既存の Flash コンテンツをすべて ActionScript 3.0 で書き換える価値があるかどうかを検討する必要があるでしょう。
代替案としては、iPhone や、Nokia の Symbian、Google の Android、RIM の BlackBerry OS、Palm の WebOS などの他の WebKit モバイル ブラウザーで既に実行されている標準の JavaScript を使用して HTML5 アプリを構築するという方法があります。
このようなオープン コンテンツは、iPhone や BlackBerry だけでなく、Safari や Chrome などの WebKit ブラウザー、Mozilla の Firefox、Opera、さらには Google の Chrome Frame プラグインを使用した Internet Explorer などのデスクトップ ブラウザーでも実行されます。
Daniel Eran Dilger 氏は、Wiley の新刊『Snow Leopard Server (Developer Reference)』の著者です。現在、Amazon で特別価格で予約注文できます。