FlashとHTML5の両方を学ぶべき

Lee Brimelow氏(Adobe Systems Platform Evangelist)

ここ1年ちょっとの間にFlashを取り巻く状況は大きく変化してきた。「HTML5の台頭でFlashが窮地に追いやられる」と伝えられたかと思えば、Appleが「iPhone/iPadでFlashアプリの実行を許可しない」と発表して大きな話題となった。そして今、Adobeは「FlashとHTML5を同じようにサポートする」という方針を明らかにしている。目まぐるしく変わる報道に混乱しているユーザもいることだろう。

Adobeのプラットフォーム・エバンジェリストであるLee Brimelow氏は、10月25日から3日間に渡り開催された「Adobe MAX 2010」において、そのようなユーザのためのセッション「FLash, Flex, HTML5: Ouch, My head hurts!」を実施した。

同氏はまず、ここ最近でFlashを取り巻く市場に何が起こったかを説明した。発端はAppleによるiPhoneのリリースまで遡る。このiPhoneにはFlashの実行環境が搭載されなかった。続いて登場したiPadにもFlashは載らなかった。それ自体は大きな問題ではなかったが、騒動となったのはこれらの搭載されたiOS 4(旧iPhone OS 4)の「iOS Developer Program License Agreement」において、サードパーティ製プライベートAPIの使用の禁止、およびObjective-C/C/C++/JavaScript以外の言語でのアプリケーション開発の禁止が明記されたからである。俗に言う「セクション3.3.1」および「セクション3.3.2」である。この規約によって、iPhone/iPad上でのFlashの実行は禁止されたことになるからだ。

この騒動をきっかけにして、開発者はFlashの使用について再考する必要性に迫られた。AdobeはiOSサポート関連の開発を凍結し、よりオープンなプラットフォームであるAndroidのサポートに注力する方針を取った。後にこの規約は変更され、開発言語の制限は撤廃され、アプリケーション埋め込み型のスクリプトおよびインタプリタなども許可されるようになったが、Appleの姿勢に対する不信感は依然として開発者の間に残ったままだ。

この時期、Flashの立ち位置を複雑にしていたもうひとつの存在がHTML5である。Brimelow氏は「HTML5を使うと何がうれしいのかを再確認する必要がある」と述べた上で、最大のメリットとしてHTMLがWebの基盤技術であることを挙げた。Webをターゲットとした端末やソフトウェアであればHTMLを無視するわけにはいかないからだ。ただし、HTML5については対応していないWebブラウザも多いため、現時点でそれにすべて依存してしまうのは時期尚早だとも指摘している。

HTML5で提供される主な機能

同氏は、Webサイトのデザイナやアプリケーション開発者は、FlashとHTML5の両方を学んでおくのがいいと語っている。HTML5は非常に強力な機能を提供してくれるものだが、表現力やオーサリングツールの充実という点で見れば現時点ではFlashの方に軍配が上がる。HTML5はまだ仕様策定の段階であり、不確定な要素が多いという点も問題となる。そこでFlashとHTML5を適材適所で使い分けたり、必要に応じてコラボレーションさせるのが良いということだ。

Flashが優れている部分の例として動画再生が挙げられた。Flashビデオはストリーミング再生や著作権保護など、Webにおけるビデオコンテンツ配信のニーズを満たす機能を持っている。その上、パフォーマンスについてもハードウェアアクセラレーション機能を活用する試みなどによって近年大幅に改善されている。HTML5でも動画再生がサポートされる予定だが、Flashビデオの必要性は今後も変わらないだろう。

モバイルアプリケーション開発におけるFlashの強み

続いて、Brimelow氏はモバイル市場におけるFlashの状況について説明した。Flash Player 10.1によって、AndroidスマートフォンでもFlashアプリケーションが動作するようになった。しかしAndroidの市場シェアは17%強であり、「現時点ではまだユビキタスにはなっていない」と同氏は言う。したがって、Flashだけでスマートフォン市場全体をカバーすることはできない。もっとも、AdobeはFlash Player 10.1の対応プラットフォームをSymbianやBlackBerry、Windows Phone、MeeGo、LiMoなどまで拡大することを発表しているので、この状況は今後改善されていくだろう。

現時点でのモバイルプラットフォームのシェア

モバイル市場に対しては、MAX開催中に大きな発表が行われている。スマートフォンに対応したAdobe AIR 2.5のリリースである。では、ネイティブアプリケーションとAIRアプリケーションでは、どちらを選択するのがよいのだろうか。Brimelow氏はAIRを利用するメリットとして次の項目を挙げている。

  • JavaやObjective-Cを学ばなくてもよい(Flashだけで完結できる)
  • Flash開発者にとってはより迅速な開発を行うことが可能
  • ゲームやアニメーションを簡単に作ることができる
  • Webとデスクトップの両方で、同じソースから配信することが可能
  • 異なる種類のスマートフォンにも同じソースから配信することが可能(近い将来)
  • 既存のコードを再利用することができる

一方で、以下のような問題点もあるので留意しなければいけないとも指摘している。

  • ネイティブのUIコントロールにアクセスできない
  • ネイティブUIとまったく同じ振る舞いを実装するのは難しい
  • AIRがサポートしているAPIしか利用することができない
  • Androidウィジェットを作ることはできない
  • OpenGL ESほどのパフォーマンスは出ない

Android端末に対するネイティブアプリ開発とAIRアプリ開発

iOS端末に対するネイティブアプリ開発とAIRアプリ開発

これらのデメリットを差し引いても、Flashプラットフォームというデスクトップと同じ枠組みの中でスマートフォン向けのアプリケーションが開発できるというのは十分魅力的だろう。特に、すでにFlashの経験がある開発者にとってはあればその知識を最大限に活用することができるという強みがある。いずれにせよ、どの技術を選択するのが開発者およびユーザにとって最適なのか、メリット/デメリットをよく踏まえた上で判断することが重要だ。そのためには、業界で何が起こっているのかを今後もよく見極めていく必要があるだろう。