Thursday, July 28, 2011

JJUG 基礎セミナー HTML5&API入門へ行ってきた

JJUG 基礎セミナー HTML5&API入門へ行ってきました。講師は白石俊平さん。内容は初心者向けのHTML5入門といったところ。
HTML5についてはほとんど知らないのでちょうどいい内容でした。
HTML5&APIを使ったウェブページの表現力の豊かさに圧倒されてきました。
明らかにデスクトップアプリケーションとウェブアプリケーションの距離は縮んでいます。

以下は簡単なメモ。思い込みやうろ覚えも含んでいます。

それまでは文書のプラットフォームであったHTMLは、HTML5によりアプリケーションプラットフォームへと進化した。
狭義にはHTML5はHTML文法とDOMに関する仕様のアップデート
広義ではHTML5にJavaScript, CSS3も含められる場合がある
HTML5には3つの意義がある。

1つ目セマンティックWebとアクセシビリティ
"More Readable for Everyone"
健常者だけでなく全ての人に。
HTML4ではセマンティックの表現が乏しくdiv要素とスタイルシートのクラスで表現していた。
HTML5ではheader要素、footer要素、section要素など文書内の文の意味の表現が可能

2つ目互換性の追求
ブラウザの挙動、表現を同じに。
"Pave the Cowpaths"
HTML4で仕様が無かったり曖昧な部分の実装がブラウザ毎に異なっていた。
HTML5では既存のブラウザの実装から仕様を取り込んだ。
"Write at once, Run any Browser"
IE9の提供は評価できる。これでIE6, IE7, IE8とも決別できる。
Microsoft曰く、"IE6は9年前の腐った牛乳だ"

3つ目Rich Internet Application
canvas要素による表現力の強化
起動時に必要とするリソースを全てダウンロードしておくことで、オフラインでも稼働可能に。これにはローカルのデータベースIndexedDBを使う。
参考サイト Sticky Notes
デバイス固有の機能にアクセス可能。これはスマートフォンを意識した仕様。ただしセキュリティには気を使っている。ユーザの許諾無しにアクセスは不可。
例 GPS、マルチメディアファイル、アドレス帳、バッテリー、マシンの傾き、メール送信
これによりネイティブアプリとの機能差が縮小する。
WebSocketを使った高度なネットワーキング
ゲーム業界が注目 HTTPでシェイクハンド!?
ファイアウォールを超えられる
video要素によりマルチメディアの再生が容易
WebWorkersを使って、バックグラウンドでJavaScriptの処理させることが可能になった

まとめ
HTML5でウェブアプリケーションはバージョンアップする。
セマンティックウェブ、リッチインターネットアプリケーション
HTML5ではオープン標準を利用している(W3C, ECMA, など)ので仕様の互換性が保証される。
ベンダーロックインは無い。
CSS3を策定した人(名前は失念)が策定作業を活版印刷技術になぞらえて、「この先500年使われる技術仕様策定に関われて幸せだ」と言っている。

おまけ(質疑応答から)
ウェブアプリケーションの作り方は変わる。
それまではサーバーサイドで処理させていたが、できることはブラウザ側にやらせるようになる。
プログレッシブエンハンスメントというアプローチ
これは、ターゲットを新しいブラウザに置き、古いブラウザでは最低限の動作を提供する、という考え方
以前はどのブラウザでも同じに見えなきゃだめ、だった。
やっちゃいけないのはUSER_AGENTを使った判定処理。Modernizrを使ってブラウザの実装機能を判定するのがいいらしい。
HTML5によりクロスオリジンリソースシェアリングが可能になった。
それまでもJSONPを使ったハックがあったがあまりいいやり方ではない。

No comments:

# スクラムマスターを雇う時に聞いてみるとよい47個の質問

  # スクラムマスターを雇う時に聞いてみるとよい47個の質問 スクラムマスターへの質問というPDFがあるので、回答してみた。 定期的に自分の回答がどう変わっていくのか楽しみだ。 Scrum Master Interview Questions: Free Download of...