Google Web Toolkit (GWT) について
Google Web Toolkit (GWT) は、
Javaを使ってWebアプリケーションを開発するためのオープンソースのフレームワークです。
Apache License 2.0 の下で配布されており、
Java開発者が
Ajaxアプリケーションを効率的に構築できるよう支援します。
GWT の特徴
- - 再利用性と効率性: GWTは、再利用可能なUIコンポーネントを提供し、非同期RPC、履歴管理、ブックマークなどの機能を効率的に扱えるように設計されています。
- - ブラウザ間の移植性: 異なるWebブラウザ間での動作差異を吸収し、開発者は移植性を気にせず開発に集中できます。
- - Javaによる開発: Javaの知識を活用してWebアプリケーションを開発できるため、JavaScriptに不慣れな開発者も容易にWebアプリケーション開発に参入できます。
- - クロスコンパイル: Javaで記述したコードは、GWTコンパイラによってJavaScriptに変換されます。この際、コードの最適化も行われ、効率的なWebアプリケーションが生成されます。
GWT の歴史
- - 2006年5月16日: GWT version 1.0 RC 1 (build 1.0.20) がリリースされました。
- - 2006年: GoogleがJavaOneでGWTを発表しました。
GWT による開発
- - 開発の効率化: GWTを使うことで、Java開発ツールを用いて効率的にAjaxアプリケーションを開発できます。
- - オープンエンドの哲学: GWTは、単なるライブラリではなく、開発者に多くの決定権を与えるオープンエンドな設計が特徴です。例えば、履歴トークンの管理はGWTが行いますが、トークンとアプリケーションの状態との対応は開発者に委ねられます。
- - 開発モードとウェブモード: GWTアプリケーションは2つのモードで動作します。
-
ホステッドモード: JavaバイトコードとしてJVM上で動作し、開発中のデバッグやホットスワップをサポートします。
-
ウェブモード: JavaScriptとHTMLとして動作し、開発完了後に使用します。
- - 開発支援ツール: GWTプロジェクトの開始に必要なファイルを自動生成するコマンドラインユーティリティ`applicationCreator`や、EclipseなどのIDE向けのプラグインが提供されています。
GWT のコンポーネント
- - GWT Java-to-JavaScript Compiler: Javaで書かれたプログラムをJavaScriptに変換します。
- - GWT Hosted Web Browser: 開発時にGWTアプリケーションをホステッドモードで動作させます。
- - JREエミュレーションライブラリ: Javaの標準クラスライブラリをJavaScriptで実装したものです。
- - GWT Web UIクラスライブラリ: UIウィジェットを生成するためのカスタムインタフェースとクラス群です。
GWT の機能
- - 動的UIコンポーネント: ドラッグ・アンド・ドロップや仮想ツリー構造など、実装に時間のかかる動的なUIコンポーネントが予め用意されています。
- - RPC機構: シンプルなRPC(遠隔手続き呼び出し)機構を提供します。
- - ブラウザ履歴管理: ブラウザの履歴管理をサポートします。
- - Javaデバッガ: 高機能なJavaデバッガをサポートします。
- - ブラウザ間の非互換性への対応: 異なるブラウザ間での非互換性を吸収します。
- - JUnit統合: JUnitを使ったテストをサポートします。
- - 国際化対応: 国際化が容易に行えるような設計となっています。
- - JSNI: JavaScript Native Interface (JSNI) を使用して、JavaコードとJavaScriptコードを組み合わせることができます。
- - Google API: GoogleのAPIをGWTアプリケーションで利用できます。
GWT の利点
- - Javaによる開発: JavaScriptではなくJavaで開発できるため、オブジェクト指向でアプリケーションを設計できます。
- - コンパイル時エラー検出: JavaScriptで実行時に発生するエラーをコンパイル時に検出できます。
- - 最適化されたJavaScriptコード: GWTコンパイラが生成するJavaScriptコードは、人間が読みやすい形式とダウンロードが高速な形式を選択できます。
- - 豊富なライブラリ: Googleやサードパーティーが提供するライブラリを利用してGWTの機能を拡張できます。
利用可能なウィジェット
GWTは、ボタン、テキストボックス、リストボックス、テーブルなどの基本的なHTMLプリミティブや、プッシュボタン、メニューバー、ツリー、タブバー、ダイアログボックスなど、様々なウィジェットを提供しています。また、サードパーティ製のライブラリを利用することで、さらに多くのウィジェットを利用できます。
関連項目
参考資料
- - Dewsbury, Ryan (2007年). Google Web Toolkit Applications. Prentice Hall.
- - Chaganti, Prabhakar (2007年). Google Web Toolkit: GWT Java Ajax Programming. Packt Publishing.
- - Geary, David (2007年). Google Web Toolkit Solutions: More Cool & Useful Stuff. Prentice Hall.
- - Hanson, Robert; Adam Tacy (2007年). GWT in Action: Easy Ajax with the Google Web Toolkit. Manning.
- - Cooper, Robert; Charlie Collins (2008年). GWT in Practice. Manning.
外部リンク