GoogleからJava開発者へのサプライズ!な贈り物、Google Web Toolkit[1]
JavaをJavaScriptに変換するグーグルのツールを使ってみよう
リトルソフト株式会社 長尾寿宏
2006/6/14
そのほかのサンプルプログラム (グループウェア、メール、ツリービュー) |
そのほかのサンプルプログラムもHelloと同様の手順で実行させることが可能です。以下、これらについて少し補足説明をしてきます。
Dynamic Table(DynaTableディレクトリ) グループウェア |
サーブレットへリクエストさせるには、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 |
- GASで棒、円、折れ線など各種グラフを作成、変更、削除するための基本 (2017/7/12)
資料を作る際に、「グラフ」は必要不可欠な存在だ。今回は、「グラフの新規作成」「グラフの変更」「グラフの削除」について解説する - GET/POSTでフォームから送信された値をPHPで受け取る「定義済みの変数」【更新】 (2017/7/10)
HTMLのフォーム機能についておさらいし、get/postメソッドなどの内容を連想配列で格納するPHPの「定義済みの変数」の中身や、フォーム送信値の取り扱いにおける注意点について解説します【PHP 7.1含め2017年の情報に合うように更新】 - PHPのfor文&ループ脱出のbreak/スキップのcontinue【更新】 (2017/6/26)
素数判定のロジックからbreak文やcontinue文の利点と使い方を解説。for文を使ったループ処理の基本とwhile文との違い、無限ループなども併せて紹介します【PHP 7.1含め2017年の情報に合うように更新】 - Spreadsheetデータの選択、削除、挿入、コピー、移動、ソート (2017/6/12)
Spreadsheetデータの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
|
|