Google Developer Day 2011 Tokyo に行ってきました #3

取り合えず、後はもうメモそのままで。

今までにないサイトを作る:HTML5による最新ウェブアプリ

Eric Bidelman
@ebidel
http://ericbidelman.com

HTML5の最新テクノロジーを実現するためのAPIについて


What's modern web application?
新しいWebアプリケーションとは何なのか、どうやって構築して行くのか。
APIやテクニックについて話して行く。
そして、出来た物をどうやって共有して、広めて行くのかを話して行く。


The Power Of The Cloud
まず考えるのは、クラウドの力。
+
Native & Desktop Richness
どうしていけばいいのか?
=
それはHTML5を利用すること。


RichなWebアプリケーションとは。
そのアプリケーションに来るためには、大きな目的があるはず。
料理が見たいならば、高精度の画像で料理の画像が見たいなど。


http://www.io-reader.com


history APIを使うことで1つのURLにディープリンクが貼られる。
画面全体が更新されている感じはしないのに、URLは順々に切り替わって行ったり。
バイスによって見え方が違うけど、元は1つのページ。


全て、素晴らしいユーザーエクスペリエンスを作るんだ、ということに集約する。


ユーザーがアプリケーションを使うまでのハードルを下げる。
ID登録であったり何なりが増えるごとにユーザーが離れて行く。
そういう場合はOpenIDを使うなど。
Google Identity Toolkit / OpenIDを使うためのTookKit


CSS MediaQueryを利用してMobile Device / Tablet Device / PCなどを切り替える。

<link rel="stylesheet" media="only screen and (max-width:480px)" 
 href="/static/css/mobile.min.css" />

windows.matchMedia("").matches


http://formfactorjs.com
→ MediaQueryを利用したいならば、こういったとても便利なJSがある。


Make a single page app:navigation & deep linking
ver slideNo = curSlide+1;
var hash = '#' + slideNo;
window.history.pushState(slideNo, "Slide ' + slideNo, hash);



InfiniteScroll
Ajaxを使っていなくて、URLが変わっているだけでも実現できる。
historyAPIを使うと、そうしたページを作成できてしまう。


Make importing files easier

<input type="file" id="dir-select" webkitdirectory />
Utilize desktop paradigms:file drag-in
ドラッグ&ドロップのイベントを取れる。

Utilize desktop paradigms:paste from clipboard
「ペースト」のイベントを取ったりすることも出来る。

Utilize desktop paradigms:file drag-out
逆にドラッグ&ドロップアウトをしてアイテムを外すことも可能。

Utilize desktop paradigms:save data to folders
フォルダ、ファイルをJavaScriptで作ることが出来るようになる。

Webアプリケーション上からこのような動作が行えるということ。
基本的に on the fly でファイルが作れてしまう。
http://www.htmlfivewow.com/demos/terminal/terminal.html


Make it work offline
データをオフラインに持って行く。オフラインでなんとか実行させる。
これまでとはまったく違った考え方になる。

<html manifest="cashe.appcache">
アプリケーションキャッシュを利用する。

Persist user data
ローカルストレージを使ってオフラインストレージ


lawnchair
simple json storage
(ローカルストレージの利用を簡単にするためのライブラリ)


Speech enable your app

<input type="text" x-webkit-speech />

コレを利用することで、簡単に音声を利用することが出来たり。
可能性が一番高いものを返してくれる。


Keep users intormed
Notification APIを利用することで、簡単にユーザーに対して
通知を表示することが出来る。
テキストだけでなく、他のHTMLを何でもその枠内に入れることが出来る。
つまりは、Video等を入れることも可能。 緊急地震速報なんかで使われてるね。


Treat performance like a feature
アプリケーションを作る際に大事なのは、レスポンスの早さ。
早く動けば動くほど、ユーザーが次も使ってくれるようになる。


How about older browsers?
古いブラウザに対してはどうするの?
→ Polyfillsを利用する。


javaScriptを作れないような物に対してはChromeFrameがある。

<meta http-equiv="X-UA-Compatible" content="...">


HTML5 BoilerPlate
はじめてHTML5のアプリケーションを作る際にはここから持ってくればいい。


Modernizr
そのブラウザで、その要素が使えるかどうかを判別してくれる。


古い格言だけど

Step 1. Build web app
Step 2. ??? → Chrome Web Store
Step 3. 収益化


先週出したばかりだが、Chrome Web Storeの新しいバージョンがリリースされた
Webアプリケーションであれば、HTML5だけに限らず
SilverLightなどでもおk


SS
(Manifestファイルの書き方など)


One last thing...

Aim for a grez