連載 :
  エンジニアtype

いったん、水を差されたHTML5の現状と、将来について

2012年10月23日(火)
『エンジニアtype』編集部
モバツイえふしんのWebサービスサバイバル術

藤川真一(えふしん)

FA装置メーカー、Web制作のベンチャーを経て、2006年にpaperboy&co.へ。ショッピングモールサービスにプロデューサーとして携わるかたわら、2007年からモバイル端末向けのTwitterウェブサービス型クライアント『モバツイ』の開発・運営を個人で開始。2010年、想創社(現・マインドスコープ)を設立。2012年4月30日まで代表取締役社長を務める

##

From Guillaume Paumier

「HTML5を取り入れるのには時期が早過ぎた」と明かしたFacebookのマーク・ザッカーバーグ氏

Facebookが、HTML5をベースにしたアプリから、ネイティブアプリに舵を切った時に、「HTML5に賭けたのは失敗」という話が業界を駆け巡った。

それまでHTML5は、新しいWeb技術の希望の星のように言われており、将来を渇望されていたところに水を差された形になった。

そこで、改めて冷静に「HTMLとは何なのか?」ということを考え直してみた方が良いと思う。

HTMLとWebブラウザの技術的メリットは、

  • 画像などの読み込み処理を制御することなく、自動的にレイアウトをしてくれる。スクロール制御もブラウザに任せておけば良いので画面サイズを意識せずに情報を記述することができる。
  • しかもCSSを使えば、細かい表示制御ができる。
  • さらに、JavaScript+DOMでHTMLの操作を自在にコントロールできる。
  • 一度書いたものは、複数のブラウザで動作する。

というものだと思う。これが期待のHTML5でどうなったかというと、ものすごく乱暴に書くと、

  • CSSの表現力がアップした。
  • JavaScriptで動かせるものが増えて、いろんなことができるようになった。

というもの。巷に流れてくるHTML5の素晴らしいデモは、確かに可能性を示した素晴らしいものだが、そもそも「HTML5でやる必要があるのか?」というのを考えざるを得ないテクノロジープレビューだったようにも思える。

HTMLの良さは、簡単に記述できることで、変更も容易なので、コンテンツの質の向上に専念できる。これはソーシャルゲームにもつながる重要な優位性である。

しかし、それが、いつしかJavaScriptで何でもできる、複雑なものも作れるという風に変わってしまった。JavaScriptで何でもできるというエンジニア的喜びを除けば、ネイティブアプリで実装するよりも難しいものを作ってしまっている面は多々あったのはないだろうか。

FacebookのHTML5の何が問題だったのか

この騒動について、HTML5の何が問題なのかについて、Facebook・CEOのマーク・ザッカーバーグ氏が答えた記事が載っていた。

FacebookのHTML5アプリは何が時期尚早だったのか。「クラッシュの原因も分からないし、スクロールも遅すぎる」

  • クラッシュの原因が分からない
  • スクロール性能が十分ではない
  • GPUがブラックボックス 

Webブラウザが、画像読み込みのロジックやスクロールのロジックを持っているプログラムにもかかわらず、FacebookのアプリはスクロールをJavaScriptで実装したりと、もはやHTMLの強みを無視したアプリを作った。それが、今回の騒ぎにつながっている。

HTML5、モバイルSafariを弁護しておくと、TwitterのモバイルWeb版も、画面遷移やスクロールなどを相当頑張ってJavaScriptで実装しているように見受けられる。

こちらは非常に高速に動くので、HTML5とJavaScriptで何かを行うこと自体が問題なのではない。あくまでも、Facebookという複雑なサービスでは重くなってしまったということなのだろう。

また、アプリに内蔵するWebブラウザ機能であるWebViewは、単体のSafariよりも処理性能が低いので、その不利も大きい。FacebookのMobile Web版がアプリよりも利用数が多いとのことなので、単純にHTML5が悪いというわけではない。

ここでの問題点についてはW3Cに持ち込まれて議論されているそうなので、今後、仕様の側で対処される可能性もあるようだが、現時点ではHTMLの得意分野の範疇を超えたものを作ったことが原因だということは書いておきたい。

HTML5か?アプリか?

FacebookがHTML5を選んだのは技術的な都合ではなく、アプリストアの制約を受けないための戦略の一環だったと言われている。アプリストアの傘の中にいる限り、課金決済の自由度やリリーススピードの面で、アップルやGoogleの制約を受けるのは避けがたいからだ。

ただ、それは現存するモバイルWeb版がカバーすれば良い話で、ネイティブアプリのコンテンツ表示部分にHTML5を使う必要はない。ソフトウエアを共通化するメリットや、更新性というHTMLらしい部分はあまり伝わってこないのが、残念なところだ。

HTML5からすると、「適切ではないところで評価され、とばっちりを食った」と考えた方が良いと思う。HTML5で何でもできると過剰な期待をしていた人には残念だったかもしれないが。

当たり前のことだが、ネイティブコードがHTML5より速いという関係は永遠に変わらない。開発生産性がサービスの価値に寄与するまでネイティブコード優勢なのは変わらない。

いつか突然HTML5が戻ってくる

from

fromiMalteZ

スクロールが従来よりも縦長になったiPhone5。HTMLの自由度の高さがあれば、デバイス間の画面サイズの違いにも自動的に対応するので、非常に扱いやすいという

HTMLのメリットは、レイアウトの自由度にある。レスポンシブWebが、PCブラウザと、スマートフォンに対応できるように作れるのと同じく、iPhone5が発売されても、何もすることなく縦長の画面でいつも通りにレンダリングされるのはメリットだ。

また、iOSとAndroidの両方で動く可能性が高いので、メリットはある。また当初懸念されていた、AndroidとiPhoneのデザインの違いについても、iPhone5が縦長になったことで変わっていく可能性もある。

今までiPhoneはナビゲーションバーが画面の最上部にあり、Androidが画面下部に戻るボタンなどがあることから、OSを超えて動作することは夢物語だったが、iOSがAndroidの良いところを取り込んでいく流れの中で、画面サイズが大きくなり、標準のナビゲーションUIの先頭にある「戻るボタン」が使いにくくなっている。

こういうところに付け入ることで、新しいコンセンサスを作っていくことは不可能ではないだろう。

とはいえ、モバイルでのHTML5の普及には、いくつか障害があって、まず一つは、新しいアプリの情報流通がアプリストア経由に限定されてしまっていること。アプリというパッケージと起動アイコンの組み合わせは芸術的でさえある。

もともとスマートフォンでのブラウザ利用率は低いわけではないのだが、ユーザーが積極的にブラウザでWebアプリを取り込もうという意識にはなっていない。これはどこかのキラーサービスがブレイクすることで、iモードの非公式マーケットのような、新しい世界ができることを期待したい。

もう一つの障害が、モバイル版Webアプリについて、iOSのSafariとAndroid4.0のChromeについてはほぼ同等の性能が出るが、Android 2.3までの標準ブラウザが、ため息が出るほど性能が低いこと。Windows PhoneのCSS3対応が保守的で足並みが取れないという問題もあった。特にAndroid2.3を使うユーザーの対処が決断のしどころだ。

Androidでは今後、HTML5でマーケットに出せるアプリを作ることができるようになるとも言われている。HTML5でアクセス可能なOSのAPIが拡充されていき、高性能な処理ができるようになるそうだ。

iOSは、特許訴訟で相手をけん制しながら、ミート戦略というライバルの良いところを素早く取り込むことで相手の強みを消し去る強者の戦略になっているようで、HTML5普及のキーはGoogleに懸かっている。

CPUの進化が、毎年2倍のペースで進化していることもあり、どこかの段階で、ネイティブでもHTML5でも問題なく速い、というタイミングが来るハズだ。

それが1年なのか2年なのか、というタイムスパンはあれど、ある日突然、HTML5の良さが活きる時代がやってくるべきだし、アプリ乱立の競争過多の時代でロングテールなサービスが成立するきっかけとしても期待したい。

HTML5がいつ一般化するか。それはまだ読めないというのが正直なところではあるが、今はすべてを注ぐべき時期ではないと思う。来るべき"本当のHTML5時代"に備えつつも、今は、ネイティブアプリの開発に注力することが、得策かもしれない。

関連リンク

著者
『エンジニアtype』編集部

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています