BPStudy#24 メモ

BPStudy#24 : ATND


雑多メモなので色々間違っているかもしれませんが。

  • 株式会社あゆた 白石俊平氏
    • html5-developers-jpというML
    • Gearsから入ってきました
  • 第一部
    • HTML5ってなに?
      • 仕様書 メインだけでPDFで900ページ以上になった
      • 8/25 最新ドラフトが公開
      • マークアップ中心の仕様と、Webアプリケーション用APIで仕様が分かれている
      • どう書く?HTML5
        • サンプル:HTML5サンプル集 - 株式会社あゆた
        • 拡張子、Content-Typeはこれまで通り
        • 先頭に空のDOCTYPE宣言
        • article, header, footer など、文書構造
          • divの嵐を抑える
        • figure, video, canvas など埋め込み要素
        • input要素に新しいtypeがたくさん
        • 新要素を遣ったマークアップ
          • divが意味のあるタグになっただけ?
            • セクション、ナビゲーションなど
            • h1もsectionの中とarticleの中で違うものになる
          • 文書のアウトライン
            • セクションの入れ子構造
            • h1~h6を暗黙的なセクション、明示的なセクションと指定できる
          • Canvasを遣って自由にお絵描き!
            • canvasからgetContext("2d")で取得したもので色々できる
            • 3dはまだ、でも出てきつつある
            • 頑張ればFLASH並のものも作れるかも?
          • プラグイン無しで動画/音声を再生!
            • 複数のメディアデータを指定し、「このうちどれか」を再生
            • 標準のフォーマット、がない。Googleに期待
          • パワーアップしたフォーム要素
            • type属性がすげー増えてる
              • Operaが対応すげー頑張っている
              • ファイル複数選択とか
              • autocompleteとか
              • validationも強い
            • ドラッグ・アンド・ドロップAPI
              • イベントリスナー3つ書くくらい
              • 今はテキストくらい。将来的にはファイルなんかも
            • その他もろもろ
              • DOMに便利なAPIとか
              • まだまだたくさん色々あるよ
  • 第二部
    • OpenWebPlatformを支えるAPI
      • アプリケーションキャッシュ
        • オフラインでWebアプリを実現
          • キャッシュマニフェストファイルを作成して公開
          • リソースのファイル名を連ねただけのテキストファイル
            • 毎回読み取り、変更されていればリソースを取り直す
      • クロスドキュメントメッセージング
        • 異なるdocument間のメッセージングを実現
        • クロスオリジンの通信も可能(送信元のチェックは怠らないように!)
        • postMessage("hoge", url)で送信、onmessageで受け取る
      • Web Workers
        • バックグラウンドスレッドで処理を任せる
          • UI操作を阻害されずに済む
        • メッセージングで通信
          • クロスドキュメントメッセージングと同様
        • ワーカからはDOMに触れない
      • Web Storage
        • キー・バリュー型のストレージ。文字列しか扱えない
      • Web Database
        • SQLをフルに使えちゃうRDB
        • 非同期、同期API
          • 非同期APIは結果をすべてコールバック関数で受けないといけない。めんどい
          • 同期APIはワーカ内でしか使えない
      • Web Sockets
        • 非HTTPで双方向通信を実現するためのAPI
        • ブラウザだけでなくサーバ側でも専用の実装が必要
        • やっぱりpostMessage()とonmessage()で送受信
  • 第三部
    • 最近作った4つ
      • AlexRecord
        • Web Database向けのO/Rマッパ
        • 面倒な実装を簡単に記述できるようになる
      • AlexService
        • Web Workersは複雑なプラグロミングには不向き
          • 膨大なswitch, case 文ができてしまう
        • オブジェクト指向的なインタフェースで送受信できるように
      • Gear5
        • HTML5APIをGearsで実装
        • 可能な限り互換性を
          • 今のところWeb Database, LocalStorage, Geolocationを実装
          • 今後はWeb Workers, Application Cache
      • fakeworker.js
        • ワーカのコードはデバッグできないのでそれを実現できるようにする
    • 興味ある方は「HTML5 Alex」で検索して!
      • 共同開発者募集!
    • イベント告知
      • 10/1〜3 「HTML5 3Days」!