a24最近のFlash騒動やHTML5/JS開発についてまとめ2011.11.17AndroidブラウザのFlashPlayerの開発が終了したり、HTML5製の3Dコンテンツが出てきたりで、「Flash終わったの?」とか、「これからはFlashじゃなくて全部HTML5で作った方がいいの?」とか聞かれる事が増えてきたので、ちょっとまめとめてみました。同じような境遇の方も少くないと思うので、参考程度にどうぞ。AndroidブラウザFlashPlayerの開発終了について残念なことにAndroidブラウザのFlashPlayerはバージョン11.1を最後に開発は終了することが発表されました。これについて「AdobeがFlashよりHTML5の方が優秀だと認めた」や「HTML5を推奨していたジョブズの完全勝利!」と考えている方もいるかと思いますが、実際のところどうなのでしょうか。Platform、そしてこれからのFlashについてはっきり言っておこうか。周知の事実だと思いますが、iOS端末にFlashPlaeyrは搭載されていません。大きな割合を占めているiOS端末に搭載されないというのはもっとも大きな壁となっていました。今後も搭載されないだろうと見切りとつけ、モバイルブラウザについてはHTML5に絞って開発していくことになったようです。ブラウザよりアプリがユーザーに好まれているモバイル端末でリッチコンテンツを閲覧する場合、ユーザーはアプリケーションだけを使う傾向があるようです。実際スマホ向けにリッチコンテンツを作るのであれば、アプリとして開発することが多いと思います。ブラウザFlashPlayerの開発は行われませんが、モバイル向けAIRの開発は今後も引き続き進められていくようです。iOS、Androidなどで動作するアプリケーションを開発できる技術です。最近では動作パフォーマンスも実用的なレベルに進化しており、数多くのスマホ向けアプリがAIRで制作されています。PC向けWebコンテンツ、デスクトップアプリ、Androidアプリ、iOSアプリの開発するといったことも以前と変わらず今後も可能になります。FlashPlayerの開発コストPC向けのFlashPlayerを開発する場合、FirefoxやChromeなどそれぞれのブラウザに対応する必要がありますが、Androidの場合ブラウザだけでなく実際に端末を制作しているメーカー等とも協力して開発する必要があります。PCで主要なブラウザといえば指で数えれる程しかありませんが、Android端末を開発している各メーカーとなると世界中各国に存在します。これら全てに対応しなければならないため、PC版に比べると多大なリソースとコストがかかっていたようです。これに関して、モバイルAIRの開発があるなら動作検証のコストはあまり変わらないのでは、という見解もあるようです。モバイルブラウザの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やのシェアが当然増えていくと思いますし、そうなっていくべきだと思います。過度な誇張や嘘をついてまでどちらかを落とし入れたり、無理矢理に勝負をさせて負けた方は消え去らないといけないといったような雰囲気は、開発者やエンドユーザーを含めて不幸になる人がたくさん出てくると思うので、勘弁して欲しいなと思います。says:良記事です!中立的で冷静な観点から書かれたこの評価は関係する人にとって非常にいい指針になると思います。says:>HTML5を選択した時点で大多数のユーザーは閲覧することができないそれこそ誇張すぎです。IE6~8でも見られるよう書けば問題ないですし。says:非常に同感しました。これまでは選択肢がなさすぎたのでしょう。目的にあった選択ができれば、みんな幸せになれるのかなと思います。says:>JSで作ったからiPhoneを含めどんな環境でも問題なく閲覧できるというのは幻想です。実案件でもHTML5で大規模案件を幾度か経験してきましたが、HTML5は後方互換性を謳っているものの結局それはデベロッパー側の対応を前提としたもので、IE6-8とiOSの両方を同時に満たすように実装するには途方も無い工数がかかりました。後方互換だけでなく前方互換も正直不安があります。iOS5やIE10で表示崩れが発生したりと、将来的なブラウザに対するコンテンツのメンテナンスも継続しなければならないと実感しています。HTML5のこの状況は将来的に改善されていくにしても、過度な誇張や嘘を報じるテック系メディアのやり方には憤りを感じます。says:スマートフォン用のソーシャルゲームは、ほとんどのアプリでHTML5(というよりJavaScript)でのアニメーションが採用されていますが、そのなかの大半が、Flashで作ったものを、静的、または動的にコンバートしています。良いツールあっての、仕組みや仕様だと思うので、開発者としては良いツールが普及してくれればよいなーと思います。says:>いわゆるフルFlashサイトのようなものを作る前提って言ってますよ。says:>bok>>HTML5を選択した時点で大多数のユーザーは閲覧することができない>それこそ誇張すぎです。>IE6~8でも見られるよう書けば問題ないですし。IE6~8でHTML5は動きませんと書いてありますが。IE6~8も見られるように書くということは、HTML5未満にする必要があり、HTML5という話題からそれますね。says:すいませんコメント返信先間違えました。未対応と定義しても過言ではありませんね。says:某巨大掲示板を見ると「Flashを標準化(またはオープン化)しないAdobeが悪い」という意見が多々見られたが、今更Flashを標準化したり完全なオープンしても意味あるんかな。says:現時点ではブラウザベースのスマートフォン向けソーシャルゲームはiPhoneに対応しているものが少ない印象ですね。says:重箱の隅ですが、記事の間違いを発見したので指摘しておきます。今後もAIRの開発は続いていくので、1ソースでWeb、Androidアプリ、iOSアプリの開発するといったことは以前と変わらず今後も可能になりますと書かれていますが、AIRはHTML5では動きません。ここで言われているWeb、というのはFlashプレイヤーの搭載されたWebブラウザ、という意味であれば意味は通りますが、記事の前後の関係からすれば今後もAIRの開発は続いていくので、1ソースでデスクトップ、Androidアプリ、iOSアプリの開発するといったことは以前と変わらず今後も可能になりますが正しいのではないでしょうか?私の認識が間違っていたらすみません。says:ご指摘ありがとうございます。ここでの「Web」は、おっしゃられた通り「Flashプレイヤーの搭載されたWebブラウザ」の意味合いで使っています。「Web」という表記が曖昧だったため誤解を招いてしましました、申し訳ございません。デスクトップアプリも抜けておりましたので、追加して訂正させていただきます。says:TNKさん、ご指摘ありがとうございます。おっしゃられる通り「過半数」という表現は不適切でした、訂正させていただきます。最初から組み込みでいれてもらうとかいろいろ手を考えてもらいたかったなと。says:実際の案件考えたらまだまだFlashは現役だと思うな。Store.なんて書いてありました。Store通す必要ありませんみたいな。HTML5のブラウザゲームが増えているようですが、その原因は前向きというより、むしろ若干後ろ向きな妥協策なのかもしれませんね。HTML5とFlashの話でもっともまとまってた記事。