GREE オープンソーステクノロジー勉強会#19 に行ってきた

Scalaのと書く順番が前後してますが・・・
第19回オープンソーステクノロジー勉強会に行ってきました。
以下、メモ晒しと雑感。

講師: 白石さん@あゆた
html5-developers.jp @google group

HTML5 ってなに?

  • HTML 最新バージョン。新要素、属性が多い。
  • 10 月に最終ドラフト公開。
  • 勧告にはまだまだ遠い (2022 年予定)=>実装されているものから使う。
  • 仕様が分かれている
HTML5 の基本
  • content-type, file extemtion は変わらない
  • タグの種類がすごく増える。
    • 日付、 progress, meter, command etc...
新要素を使ったマークアップ
    • アウトラインを構成する要素
    • スタイル定義の要素には div を使う
    • 独立したセクションの要素
    • RSS で配信されてもいいようなもの

HTML5 では全てがセクションに所属する。
セクションは全て独立した要素である。

アウトライン = セクションの入れ子構造
セクションの構造を意味のある (セマンティックな) 要素で表す
=> プログラムから文書の構造がわかりやすくなる

特徴的な要素
    • 自由にお絵描きができるグラフィック要素
    • 要素の変形などが可能 (js から操作)
    • ex) スピナー画像のサンプル
      • JS 1kb 程度。色の変更や動作の制御が可能
    • 3D がサポートされつつある
フォーム要素
  • 日付やメールアドレス、電話番号などのフォーム要素が増えた
  • Opera では実装が進んでいる
  • 入力値のヴァリデーションが属性値で制御できる。
    • type での自動チェック
    • 正規表現でのチェック
  • オートコンプリートの実装が可能
    • :list => datalist & option
その他の要素
  • ドラッグアンドドロップ API
    • IE での実装を標準か
    • 外部アプリケーションとの連携が可能
    • MIME type を指定してファイルの受け渡しが可能
  • クロスドキュメントメッセージング
    • 異なるウインドウ間でメッセージの受け渡しが可能
    • iframe 内と通信したり
    • ex) iGoogle のガジェット間通信 (ガジェットは iframe)

関連 API

アプリケーションキャッシュ
  • Gears みたいなにローカルにキャッシュができる
Web Database
  • クライアント上で動作する RDB
  • SQL 使用可
  • ドメインごとに領域が分かれている
  • 1 ドメインで複数 DB 保持可
  • 非同期 API と同期型 API が存在する
Web Strage
  • key-value 型のストレージ
  • Local strage: 永続的
  • Session strage: ウインドウごと
  • 既に IE8 で利用可能
Web Workers
  • バックグラウンドで動作するスレッド
  • 複雑になる JS アプリには必須
  • スレッドとは厳密な意味では異なる
    • 変数の共有不可
    • メッセージング API を利用する
    • Worker から DOM をいじるなども不可
  • 辛い点
    • Worker はデバッグ不可。ログ出力もメッセージ API 経由
  • 実装ライブラリ
    • fakeworker.js
    • AlexService
Web Sockets
  • 双方向通信を行う API
  • サーバ側にも専用の実装が必要
    • Port:80, 443
まとめ
  • HTML5+API で Web アプリの可能性が広がる!

雑感

  • ブラウザ自体がアプリケーションプラットフォームになる印象
    • RDBやKVSの内包に注目。
    • インターフェースもさらにリッチにできる。
  • 簡単なアプリはブラウザだけで完結する。サーバサイドは同期するだけになるかも。
  • HTML5 + CSS3 で注目されているが、いつのまにか JS も標準に組み込まれているような。
    • HTML が JS を取り込んだという意見も
    • HTML5 の要素には JS 前提のものが多い
  • とりあえず覚えきれない。仕様でかすぎ。
    • なぜかMS系の環境が連想された。特にExcelとか。

ともあれ、クライアント環境の強化によって、Webアプリケーションの様子ががらりと変わりそうな感じがします。