tande lab.

Webプラットフォームの進化と実装 〜Web技術の現在と未来〜 #html5j 聴講メモ

だいぶ経ってしまいましたが、去年9月の HTML5 Conference 2012 のセッション「Webプラットフォームの進化と実装 〜Web技術の現在と未来〜」聴講メモを今更ながらアップ。

関連記事
前記事 – HTML5 Conference 2012 #html5j が熱かった!!
前記事 – HTML5 conference2012 #html5j 基調講演メモ

Firefox の中の人 @dynamitter さんのセッション。
当日のスライドは以下。ありがたや。

HTML が進化してきている、だけども OS によって少し挙動が違う、その辺についてのお話。

HTML5 への期待

Web こそがプラットフォームになる!というのが 2012 年の目玉。
あらゆるデバイスで同じアプリケーションが動くプラットフォームとして、HTML5 が期待されている。

  • 次世代プラットフォーム
  • マルチデバイス対応
  • アプリ開発を簡単に
  • 組版技術・デザイン周りを Web に

Web はもう見るものではない!
しかし HTML5 でやれることが広がってきたが、ネイティブアプリとの差はまだまだ大きい。

HTML5 なんてもう古い

HTML5 の仕様だけをみていると、最新技術から置いて行かれてしまうので注意。
常に最新技術はアップデートされている。

HTML5 とは、HTML4 に仕様化されていなかった部分・互換性が無かった部分などを整理した物。

その外側に色々な規格、各標準化団体がすすめる js の拡張、ライブラリがあって、プラットフォームとして形になる。

HTML5 という規格化された物は、実はすでに最新ではない!

W3C 標準化には 3年 とかかかるので、それを待っている間にどんどん新しくなっている。
そういう業界の動きは認識していた方が良い。

  • HTML5 = 安定ブランチ
    • 2013 W3C 勧告に向けて標準化中
  • HTML = 最新のHTML
  • 最新Web != HTML5

ブラウザ戦争は終わった

各社新しい規格を提案し、標準化の主導権を握る戦いをしつつ、web全体の進化を加速している。

Webプラットフォーム vs 独自プラットフォーム

せっかく色んなブラウザ、OS、が出てきている中、
どれでも動くような基板を作ろうというところで HTML5 が期待されている。

代表的な HTML5 プラットフォーム

WEB OS と言われている物達。

  • Windows 8, RT, Phone
  • BlackBerry 10 – WebWorks
  • Tizen (meego+limo+bada)
  • Firefox OS (Boot toGecko)

Windows 8, RT, Phone について

かつて Metro と呼ばれていたもの。
HTML で書けるよと言っているが、形式的に使っているだけ。
他の Web アプリを今まで書いてきた人が触ると、ちょっと違う。
Metro アプリの HTML は独自属性の嵐。

Metro は Web と非互換。
HTML が、そのまま Web で動作しないものがある。
innerHTML とかフィルタされる。
alert が使えない、など。

ゆえに、実質 Web ではない!

他にも、

  • UIガイドラインが厳しい。
  • アプリケーションの設定はチャームで行う。
    • アプリケーション本体内に設定を入れてはいけない。
  • Web 読込みだけするようなアプリは不可。
    • iOS / Android では Web だけ表示するアプリもある。

など制約がある。

設定部分の UI をガイドラインに沿うとしたら、既存の Web アプリケーションはだいたい本体アプリ内に設定があるものが多いので、全滅。作り直しになってしまう。

このような仕様をみていると正直なところ、

  • ずっとあたしのことだけ愛してね。
  • Windows だけで今後アプリ作ってね。

と言われているような感覚。

Web と違うなら HTML 使ってる意味がない!と思ってしまう。

BlackBerry 10 -WebWorks

  • HTML でもアプリ開発可能。
  • メインはネイティブ開発推奨っぽい。
  • W3C 仕様があるものは実装。
  • ないものは実装を独自で追加。

Tizen

  • HTML でもアプリ開発可能。
  • メインは EFL のネイティブを押し始めている感じだが、方向性が分からない。
  • 参加企業の連携状況が謎。
  • W3C 仕様があるものは実装、ないものは実装を独自で追加。

Firefox OS (Boot to Gecko)

  • Webがネイティブ。
  • 純粋の HTML のみでアプリを書くプラットフォーム。
  • 足りない物は HTML 側の仕様標準化を進める。

有名どころ2つのOSは?

iOS

  • 独自ブラウザコア不可
  • JITエンジン動作せず

Android

  • 独自ブラウザエンジン可
  • まだPC系との互換性が弱い

WebAPI の現状

システムステータス、センサー、低レベルハードウェア制御…。
なかなか進んでいなかったが、Mozilla が推進中。

webapp 間の連携 WebIntents/WebActivities

GoogleとMozillaが似たような規格提案をしていて、統合される予定。

TCP Socket

ネイティブ並みになれるかも。

仕様だけ、実装だけ、どちらもだめ。
平行して仕様も明確にするし、仕様通りの実装もする。

そして再び Firefox OS の話

ネイティブアプリ = Web
Web 以外のアプリケーションは存在しない。
Boot したらブラウザコアが起動して、その上に Web アプリ、と言う構成。

製品化しないと需要、改善点が分からないので商品として出す。

世界3番目のスペインのキャリアが後進国で低価格スマートフォンを出したいと言っていて、現状世の中のアプリは半分は web だったりするので、一番 web アプリが早く動くプラットフォームとして、Firefox OS が選ばれた。

今後に期待!