GoogleからJava開発者へのサプライズ!な贈り物、Google Web Toolkit[1]

JavaをJavaScriptに変換するグーグルのツールを使ってみよう


リトルソフト株式会社 長尾寿宏
2006/6/14


 そのほかのサンプルプログラム
 (グループウェア、メール、ツリービュー)

 そのほかのサンプルプログラムもHelloと同様の手順で実行させることが可能です。以下、これらについて少し補足説明をしてきます。

 Dynamic Table(DynaTableディレクトリ) グループウェア

 テーブルのページング動作に伴って、GWTリモート・プロシージャ・コール(RPC)によるデータ取得を行うサンプルです。サーバ側プログラム(サーブレット)のソースも付いていますが、デフォルトの状態では、"calendarNN.txt"というファイルを読み込んでいるだけで、サーブレットは使われていません。

 サーブレットへリクエストさせるには、SchoolCalendarWidget.javaのUSE_STATIC_RPC_ANSWERSというフラグをfalseにしてビルドし直します。また、当然ながら、サーブレット実行環境を準備する必要があります。

 このサンプルでは、PersonというJavaクラスを定義し、このクラスを当たり前のようにサーバ側とクライアント側の両方で使用しているという点で、GWTRPCのシンプルさを実感することができます。

 Desktop App Clone(Mailディレクトリ) メール

 デスクトップの電子メールアプリケーションのUIを再現しているサンプルです。AJAX対応の大規模なJavaScriptツールキットDojoにも、同様に電子メールアプリケーションを題材にしたデモプログラムが存在します。どちらも実際の機能は実装されていないハリボテプログラムですが、UI構築のアプローチを比較するには良い素材です。

 ざっと眺めたところの感想、というより印象ですが、さすがにこの規模のUIになると、Javaコードで整然としたプログラミングで統一されているGWTの方が、"作りやすいかも"という気持ちにさせてくれます。もちろん、これはJavaやSwingに慣れた人間のひいき目ですが。

 JSON RPC(JSONディレクトリ) ツリービュー

 Yahoo!のイメージ検索サービスから、JSON形式テキストをフロントアプリケーションで取得・解析し、ツリー形式のウィジェットに表示するというデモシナリオです。これもDynaTableサンプル同様、実際にはYahoo!サイトへのリクエストを行わず、search-results.jsというファイルを、レスポンスに見立てて読み込んでいます。

 JavaScriptの世界だけであれば、JSON形式テキストをeval関数で評価すれば、その後の取り扱いはとても簡単ですが、このサンプルはかなり大掛かりになっています。これは、厳密な型の概念がなく、オブジェクト内の属性も配列として簡単に取り扱えてしまうJavaScriptプログラミングを、厳密な型に縛られるJavaプログラミングで表現しようとするGWTの悩ましさかもしれません。

 しかし、不定なものを縛り直すことで、プログラミングの質を高め、最終的には生産性向上につながるだろうという、GWT開発者の意図も理解できます。

 Kitchen Sink(KitchenSinkディレクトリ)

 GWTが提供するさまざまなウィジェットが詰め込まれたデモプログラムです。

 このサンプルのポイントはブラウザのヒストリー管理が実装されていることです。デモ画面左のアイテムをクリックするとパネルが切り替わり、さまざまなウィジェットを表示してくれますが、ブラウザのバックボタンを押すと、前回表示したものを再表示してくれます。

 普通のHTMLページでは当たり前の動作ですが、AJAXでは事情が異なります。JavaScriptからDHTMLを操作して作り上げた内容は、通常、何もしなければヒストリーには残りません。

 GWTはこのヒストリー管理を容易に実装するメカニズムを提供してくれます。ブラウザのバック/フォワードボタンに伴うイベント、再表示すべきUIの識別(token)を教えてくれます。



3/5

 INDEX

Google Web Toolkitとは?(1)
  Page1<GWTの機能、特徴/GWTの製品構成/GWTのライセンス>
  Page2<Google Web Toolkit を使ってみよう/サンプルプログラムHelloを実行する>
  Page3<そのほかのサンプルプログラム(グループウェア、メール、ツリービュー)/Dynamic Table(DynaTableディレクトリ) グループウェア/Desktop App Clone(Mailディレクトリ)メール/JSON RPC(JSONディレクトリ) ツリービュー/Kitchen Sink(KitchenSinkディレクトリ)>
  Page4<マイプロジェクトの作成>
  Page5<GWTの基本的なメカニズム/Webモードへのコンパイル/気になる日本語出力/Google Web Toolkit のインパクト>



Ajax解体新書(1) よりAjaxを深く理解するために、ブラウザ上の「見た目」だけに注目するのではなく、実際に目に見えない舞台裏の通信内容をモニタリングしてみよう
Ajax技術の目に見えない通信内容をのぞいてみよう 2006/2/11

古くて新しいAjaxの真実を見極める
「Webインターフェイスの新しい手法」「画期的なWebアプリケーションの仕組み」であるとして開発者たちの人気を集めるAjaxとは何なのか、その真実を見極めてみよう
最終更新 2005/8/2

 



HTML5 + UX フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日 月間