2008年6月20日金曜日

HTML5 Client-side database storageに関して

昨夜同僚と飲みに行ったのでまとめられなかったのでまとめ。

HTML5で策定中のブラウザ側でローカルデータベースをもってデータパシストするという規格「HTML5 Client-side database storage」はまだ最終決定までまとまっていない。

この規格をいち早く取り入れたのが、WebKit陣営。

その最初の製品として「Safari3.1」が上記仕様での実装を行っている。

それとは一方別にちょっと前から、Googleの方でも「Gears」というブラウザへの機能拡張を使って同様の機能を提供できる環境を提供していた。GeaesはFirefox1.5以上とIE6以上の対応。OSもMac、Win、Linuxと対応。(MacのSafariには対応してない)

GearsはもともとClient-side database storageだけを提供するのもではないが、一部の機能としてそれを実現している。それはHTML5で策定中の仕様とは異なる物で、アクセスするJavaScriptのコードもHTML5(Safari)版とは異なる書き方である。

先日リリースされたFx3はClient-side database storageには対応していないので、使用する場合はGearsが必要(ギリギリにリリースされた)。

WebKit陣営は積極的にこの仕様を取り入れているので、一部、携帯電話デバイスも含め、WebKitを利用する各所に取り入れられている。AIRも同様だし、iPhone2.0のSafariに取り入れられているという話もある。となると同じWebKitを仕様する「Android(By Google)」もこれを実装する可能性は高い。なので、気がつくと次世代の携帯端末の雄は携帯においてClient-side database storageを実装するプラットホームとなる可能性がある。

Gearsの方はFacebookやMySpace等が自信のプラットホームアプリの改善の為に取り入れ初めている。
そういった形でオープンなwebプラットホームのなかから取り入れられる可能性が高い。

Fxも最終的にはHTML5仕様のClient-side database storageを入れると思われる。

Gearsは最終的には形を残しつつも、よりHTML5仕様のAPIと互換性を持つ形で発展していく物と思われる。

Client-side database storageの利点は、何よりも、クライアントサイドでのwebアプリケーションのパフォーマンスや使い勝手が圧倒的に向上すると言うことである。また、電波が来ない場合のオフライン機能としてこれを使うこともできる。よりwebアプリがネイティブアプリに近い形に進化する可能性があり、一種RIA環境を構築する際の重要なパーツにもなるであろう。

ということで、早速、今日はSafariとFx3+Gearsでテストをしてみました。
簡単なテーブルを生成して、フォームから書き込んだデータをローカルのDBにインサートして、その後新着からデータをリストで引っ張ってくるという簡単なものだ。

やはりAPIの使い勝手はHTML5版の方が良さげである。
現状、一つのHTMLで両者に対応しようとすると、コードを分岐させて同じロジックを二回書かなければならない。一応、ばからしいと思いながらも、経験ということでやってみたが、やっぱりばからしい。
できれば、GearsのAPIをHTML5版にラップするライブラリを書くことが必要だろう。

ま、(現状のPCの)シェアを考えると、IE、Fxが多いだろうから、やっぱGearsを中心に考えなければならないだろう。ただし、iPhoneとかプラットホームが限定されたサイトを考える場合、結構絞り込みで使えるのでこちらは楽そう。

あ、ちなみにClient-side database storageの実装の招待はSqliteです。
なので、通常使えるSQLはばりばり使うことができます。
SQLばりばりの開発者の方はうれしい方向性ですね。

0 件のコメント: