Google Gears について
これまでにも本ブログで Google が Google Code でオープンソースとして公開しているソフトウェアを解説してきましたが、今回は Google Gears というソフトウェアを紹介します。なお、12 月 7 日にはこれをテーマにした デベロッパー交流会 が開かれます (文末参照)
皆さんは旅先でブログを更新しようとしてもネットワークに接続できず、家に帰ってオンラインで更新しようとした時にはもう感動が薄れていたなどと いう経験はないでしょうか?もちろん、エディタやワープロで文書を残し、家に帰ってからコピー&ペーストでも問題は解決しますが手間がかかります。ブログ サービスのような Web アプリケーションが Google Gears 対応すれば、このようなオフライン時のユーザが抱える問題をスマートに解決できます。
Google Gears は今年の5月末に開催された Google Developer Day 2007 と同時に発表された、Web アプリケーションをオフラインで利用するための強力な助けとなる Javascript API 群です。Google Gears はブラウザの拡張機能として提供されており、現時点では Windows 環境では Internet Explore 6 以上と Firefox 1.5 以上、MacOS X と Linux 環境では Firefox 1.5 以上をサポートしています。ユーザとして Google Gears を使うには、ダウンロードページからお使いの OS に対応したものをダウンロードし、インストールするだけです。実際にインストールしたら、Google Gears 対応の Google Reader (英語版のみ、日本語版は未対応) を試してみてください。Google 以外のサービスでも、Remember the Milk (タスク管理の Web アプリケーション) など、多くのサービスに続々と対応していただいています。
ここでは、Google Gears を利用したサービスの開発者の立場に立って機能を解説したいと思います。Google Gears をインストールすることによって拡張されるブラウザの機能は、主に以下の3つです。
- LocalServer (ローカルサーバ、HTML や CSS 等のコンテンツをキャッシュします)
- Database (データベース、データをローカルに蓄積します)
- WorkerPool (JavaScript にスレッド的機構を追加します)
前者の2つは、オフラインでのデータへのアクセスを便利にしてくれます。近頃のWebアプリケーションは、常時接続の普及を前提として Ajax などを使い頻繁にサーバに接続しますが、一旦オフラインになると動けなくなってしまいます。LocalServer はその名の通り、ローカルな HTTP サーバであるかのようにキャッシュしたコンテンツをブラウザからオフラインでもアクセスできるようにしてくれます。また、データベース機能は Google Gears の内部に組み込まれた SQLite というオープンソースのデータベースエンジンを利用して SQL を使ったデータの保存や検索を可能にします。ブラウザ上で動作する JavaScript プログラムはセキュリティ上の理由で簡単にローカルデータを参照したり保存したりできません。そのため、これまでは Cookie を使ったり、ある程度以上の大きなデータを扱いたい場合にはデータをオンラインのサーバに置く等の必要がありました。データベースを使えばこのような問題 も解決します。また、データベースには全文検索機能もあり (残念ながら、現時点では日本語のように単語が空白で区切らない言語には対応していませんが将来対応予定です) 、より高度なアプリケーション開発を可能にしてくれることでしょう。
最後の WorkerPool は、ブラウザ上で動作する JavaScript にスレッド的な機構を追加します。これは必ずしもオフライン Web アプリケーションの開発に必要なものではありませんが、うまく利用することによってユーザの使用感を向上させることができます。Web ブラウザ上で動く JavaScript プログラムは基本的にシングルスレッドで動作するため、ある処理に時間がかかると他の処理が行えず、しばらくボタンが押せなくなる等ユーザーが待たされる ケースが発生していました。この WorkerPool を使えば、データベースの I/O 処理などをメインとは別のスレッドにバックグラウンドで行わせることによって、よりレスポンスのよいユーザインターフェイスを構築することが可能になりま す。
これらの機能はすべてブラウザ上の JavaScript API から利用可能となっています。API の詳細やコードのサンプルは、Google Code 内のGoogle Gears API サイトをご覧ください。JavaScript や SQL での開発経験があれば、すぐにでもドキュメントを読んで Google Gears API を使い始めることができると思います。
以上の3機能だけでもかなり強力で、ブラウザ上で実現できるアプリケーションの可能性が大きく広がったように思いませんか?
これらの機能は、開発者にとってオフラインでブラウザをアプリケーション環境として利用するためのハードルを低くし、より Web アプリケーションを通常のアプリケーションに近づけることを可能にしてくれるでしょう。また、最近 Google Gears と Greasemonkey (任意のサイトで指定の JavaScript を実行できる人気の Firefox 用アドオン) を組み合わせ、自分のサイトだけでなく任意のサイトで Google Gears の機能を使う "GearsMonkey" と呼ばれるテクニックも発明 ( ? ) され、ますます可能性が広がっていきそうです。
Google Gears はまだベータ版ですが、互換性をサポートするための機構も持っているため (詳細は Factory APIのドキュメント を参照してください) 、将来に渡って同じ API を利用し続けることができます。また、オープンソースプロジェクトとしてプロジェクトページでソースコードを公開しており、Google Gears そのものの開発に参加することも可能です。
来る 12 月 7 日 ( 金 ) には、当 Google Japan ブログでもご好評頂いているデベロッパー交流会 (第1回, 第2回, 第3回) の第4回がこの Google Gears を題材に品川で開催されます。Gears の具体的な使用方法やテクニックについて話題にする予定です。今回は、一般聴講者の参加も募集していますので、Google Gears に関してもっと知りたい、先進的な Web アプリケーションを作ろうと考えいてる方は、ぜひ足をお運びいただければと思います。参加登録などはこちらをご覧ください。