最近のFlash騒動やHTML5/JS開発についてまとめ
2011.11.17AndroidブラウザのFlashPlayerの開発が終了したり、HTML5製の3Dコンテンツが出てきたりで、「Flash終わったの?」とか、「これからはFlashじゃなくて全部HTML5で作った方がいいの?」とか聞かれる事が増えてきたので、ちょっとまめとめてみました。
同じような境遇の方も少くないと思うので、参考程度にどうぞ。
AndroidブラウザFlashPlayerの開発終了について
残念なことにAndroidブラウザのFlashPlayerはバージョン11.1を最後に開発は終了することが発表されました。これについて「AdobeがFlashよりHTML5の方が優秀だと認めた」や「HTML5を推奨していたジョブズの完全勝利!」と考えている方もいるかと思いますが、実際のところどうなのでしょうか。
記事を参考に、開発終了の理由についてまとめてみました。
【参考記事】
・ Clarifications on Flash Player for Mobile Browsers, the Flash Platform, and the Future of Flash at Mike Chambers
・ モバイル版Flash Player、Flash Platform、そしてこれからのFlashについてはっきり言っておこうか。|F-site
・ モバイルFlash断念はAppleの拒絶が主因―Adobe幹部が説明|ITmedia ニュース
・ デバイス向け Flash Player 中止についてマイクの説明とその考察|akihiro kamijo
理由その1: iOS端末のFlashPlayerの非対応
周知の事実だと思いますが、iOS端末にFlashPlaeyrは搭載されていません。モバイル版Flash PlayerをPC版と同様に普及させる事を目的としていたAdobeにとって、スマホの中で 過半数 大きな割合を占めているiOS端末に搭載されないというのはもっとも大きな壁となっていました。そして今後も搭載されないだろうと見切りとつけ、モバイルブラウザについてはHTML5に絞って開発していくことになったようです。
理由その2: ブラウザよりアプリがユーザーに好まれている
モバイル端末でリッチコンテンツを閲覧する場合、ユーザーはアプリケーションだけを使う傾向があるようです。実際スマホ向けにリッチコンテンツを作るのであれば、アプリとして開発することが多いと思います。
ブラウザFlashPlayerの開発は行われませんが、モバイル向けAIRの開発は今後も引き続き進められていくようです。AIRとは、Flashを制作するのと同様にデスクトップや iOS、Androidなどで動作するアプリケーションを開発できる技術です。最近では動作パフォーマンスも実用的なレベルに進化しており、数多くのスマホ向けアプリがAIRで制作されています。
このAIRまで一緒に開発が終了してしまったと勘違いし、モバイルのFlashは終わったと思った方もいると思いますが、今後もAIRの開発は続いていくので、1ソースで Web PC向けWebコンテンツ、デスクトップアプリ、Androidアプリ、iOSアプリの開発するといったことも以前と変わらず今後も可能になります。
理由その3: FlashPlayerの開発コスト
PC向けのFlashPlayerを開発する場合、FirefoxやChromeなどそれぞれのブラウザに対応する必要がありますが、Androidの場合ブラウザだけでなく実際に端末を制作しているメーカー等とも協力して開発する必要があります。
PCで主要なブラウザといえば指で数えれる程しかありませんが、Android端末を開発している各メーカーとなると世界中各国に存在します。当然これら全てに対応しなければならないため、PC版に比べると多大なリソースとコストがかかっていたようです。
※ これに関して、モバイルAIRの開発があるなら動作検証のコストはあまり変わらないのでは、という見解もあるようです。(参考)
理由その4: モバイルブラウザのHTML5サポート率
モバイルデバイスにおいて、HTML5は高いサポートを受けており、デスクトップ環境におけるFlashPlayerに近いレベルで普及しています。パフォーマンスや互換性の問題もまだ多くありますが、驚くべきスピードで改良が進んでいます。
まとめ
PC版に比べて開発コストが高い割に、アプリに比べるとあまり使われておらず、更にiOSに搭載されないのでPC版のような普及率も見込めないので開発止めるわー、といったところでしょうか。単にHTML5の方がマルチプラットフォームで優秀なのでFlashPlayerを諦めたという理由ではないようです。
では、実際HTML5は今後Flashにとって変わる技術なのでしょうか?
HTML5、JavaScriptでのサイト制作の実情
モバイルに限らず、PC向けのサイトでもFlashではなくHTML5やJSを用いたインタラクティブなコンテンツが増えてきていますが、実際そういったコンテンツを作るに当たってのメリット/デメリットはなんなのでしょうか。
Flashとの比較ということで、いわゆるフルFlashサイトのようなものを作る前提で考えてみたいと思います。
HTML5で開発する場合
GizmodeさんでHTML5製の3Dコンテンツ(少しお粗末でしたが)が取り上げられたりと、Flashに近い表現ができると期待されていますが、実務レベルで考えるとまだまだ難しいと思います。
その理由として一番大きいのは、ブラウザによってはHTML5に対応しておらず、特にIE6~8では見れないということです。これはPCブラウザの過半数を占めるブラウザを切り捨てるということになるので、HTML5を選択した時点で大多数のユーザーは閲覧することができないということになります。
※ 2011年11月16日現在、日本におけるIE6~8のブラウザシェアは53.5%。(参考)
HTML5に対応しているブラウザだったとしても、ブラウザによって仕様が異なり使えない機能なども存在します。もし、「PCでもiPhoneでもAndroidでも誰でも同じように見れるようにしたいからHTML5で開発したい」と考えている方はもう一度考え直した方がよいかもしれません。
また、Flashに比べると数倍~の開発コストかかってしまうことも問題です。
HTML5は元々Flashの代わりなるように作られたものではないので、Flashと同じようなことが出来ると言っても、Flashと同じように作れる訳ではありません。例えるなら、Windowsに標準で搭載されているペイントを使ってサイトのデザインを作るようなものだと思います。まぁこの例えは極端ではありますが、ペイントを使った事がある人であれば「頑張れば出来ないことはないけど、しんどすぎるわ!」といったニュアンスが伝わるかと思います。
またHTML5では扱えない機能もあるので、Flashと同じものを作るということ自体不可能という場合もあります。Flashで出来ることは、全てHTML5でも出来るというのは幻想です。
ただし、今HTML5は間違いなくトレンドですし現状それだけで注目を浴びることができるので、IEユーザーを切り捨てても問題がなく、予算にも余裕があるといった場合、HTML5でコンテンツを作るということも有効な手段の一つかと思います。
JavaScriptで開発する場合
まず最初に、「Flashが使われていないのに画像等が動いてるサイトは全てHTML5で出来ている」と思っている方が稀にいるようなので訂正しておきます。Flashじゃないからといって全てのコンテンツがHTML5で作られているとは限りません、むしろHTML5とか関係なくJSで作られている場合がほとんどです。
JSの場合、IEでも閲覧できるのでHTML5のような問題はありませんが、やはりブラウザごとに仕様の違いがあり、Flashと同じように作れる訳ではないので、HTML5同様に開発コストは数倍~程度高くなります。
また、iPhoneなどのiOS端末からでも見れるようにしたいのでFlashではなくJSで開発したいという話をよく聞きますが、ここにも一つ幻想が隠れています。実はiOSやAndroidでのJSの動作パフォーマンスは非常に低く、まともに表示することすらままならない場合も少なくありません。JSで作ったからiPhoneを含めどんな環境でも問題なく閲覧できるというのは幻想です。
これは個人的な意見ですが、JSに関してはFlashの代用として使うのではなく、普通のHTMLサイトに動きをつけてちょっとリッチにしたり、より見やすく、より使いやすくするための+アルファの技術として使うのが一番しっくりくるような気がします。
あとがき
今後HTML5やJSに最適な環境やコンテンツがどんどん増えていくことになれば、Flashの出番は減り、HTML5やJSやのシェアが当然増えていくと思いますし、そうなっていくべきだと思います。
ただ、過度な誇張や嘘をついてまでどちらかを落とし入れたり、無理矢理に勝負をさせて負けた方は消え去らないといけないといったような雰囲気は、開発者やエンドユーザーを含めて不幸になる人がたくさん出てくると思うので、勘弁して欲しいなと思います。
There are 43 comments in this article: