Google Web Toolkit

提供: miniwiki
移動先:案内検索

Google Web Toolkit (GWT) は、Javaを使ってウェブ用Ajaxアプリケーションを開発できるオープンソースのJavaソフトウェア開発フレームワークである。Apache License 2.0でライセンスされている[1]

GWTは再利用可能で効率的なAjaxソリューションであることを強調しており、すなわち非同期RPC、履歴管理、ブックマーク、ブラウザ間の移植性の良さなどを特徴とする。

歴史

GWT version 1.0 RC 1 (build 1.0.20) は2006年5月16日にリリースされた[2]。Googleは2006年のJavaOneでGWTを発表した[3]

リリース履歴
バージョン 日付
GWT 1.0 2006年5月17日
GWT 1.1 2006年8月11日
GWT 1.2 2006年11月16日
GWT 1.3 2007年2月5日
GWT 1.4 2007年8月28日
GWT 1.5 2008年8月27日
GWT 1.6 2009年4月7日
GWT 1.7 2009年7月20日
GWT 2.0 2009年12月8日
GWT 2.1.0 2010年10月19日
GWT 2.2.0 2011年2月11日
GWT 2.3.0 2011年5月3日
GWT 2.4.0 2011年9月8日
GWT 2.5.0 2012年10月
GWT 2.5.1 2013年5月
GWT 2.6.0 2014年1月30日
GWT 2.6.1 2014年5月10日
GWT 2.7.0 2014年11月20日
GWT 2.8.0 2016年10月20日
GWT 2.8.1 2017年4月24日
GWT 2.8.2 2017年10月19日

開発

GWTを使うとAjaxアプリケーションをJavaとJava用開発ツールを使って素早く開発できる。そして、そのアプリケーションを配布する際には、GWTクロスコンパイラがJavaからJavaScriptへの変換を行い、オプションで高度に最適化された(読みにくい)コードも生成できる。

GWTは単にインタフェースまわりの開発にとどまらず、JavaScriptを使った任意の高機能クライアントを構築できる。GWT開発者は、GWTは単なるライブラリではなく、新たなAjaxライブラリの実装というだけではないことを強調する。そのオープンエンドの哲学は徹底しており、多くのアーキテクチャ上の決定がGWTを利用する開発者に委ねられている。GWTの目的を記した文書を見ると、GWTの役割と開発者の役割をわかりやすく解説している。例えば、履歴トークンはGWTが管理するが、履歴トークンがアプリケーションの状態とどう対応するかは開発者に委ねられている。

GWTアプリケーションは以下の2つのモードで動作する。

  • ホステッドモード : JavaバイトコードとしてJava仮想マシン (JVM) 上で動作する。一般に開発途中で利用するモードで、コードのホットスワップやデバッグをサポートしている。
  • ウェブモード : JavaScriptとHTMLとして動作する。元は Java のソースコードである。開発完了後は、この形態で使用する。

GWTにはコマンド行ユーティリティapplicationCreatorがあり、GWTプロジェクトを開始するのに必要な全ファイルを自動生成する。Eclipse用プロジェクトファイルを生成することもできる。GWTを使ったIDEでの開発を支援するオープンソースのプラグインがいくつかある。例えばNetBeans向けのGWT4NBEclipse向けのCypal Studio for GWTやGoogle社が作成、提供しているGoogle Plugin for EclipseJDeveloper向けのgwtDeveloperなどである。

コンポーネント

主なGWTコンポーネントは以下の通り。

GWT Java-to-JavaScript Compiler
Javaで書かれたプログラムをJavaScriptに変換する。
GWT Hosted Web Browser
開発時にGWTアプリケーションをホステッドモードで動作させる(JavaScriptに変換することなく、JavaアプリケーションをJVM上で動作させる)
JREエミュレーションライブラリ
Javaの標準クラスライブラリでよく使われるクラス(java.langパッケージのクラスやjava.utilパッケージの一部のクラス)をJavaScriptで実装したもの
GWT Web UIクラスライブラリ
ウィジェット生成のためのカスタムインタフェースとクラス群

機能

  • 動的かつ再利用可能なUIコンポーネント : 実装に時間のかかる動的機能(ドラッグ・アンド・ドロップや仮想ツリー構造など)が予め実装されたクラスを使うことができる[4]
  • 単純なRPC機構
  • ブラウザ履歴管理
  • 高機能Javaデバッガサポート[3]
  • ブラウザ間の非互換問題への対処[3]
  • JUnit統合
  • 国際化が容易
  • JavaScript Native Interface (JSNI) を使って、人間が書いたJavaScriptコードとJavaソースコードを組み合わせることができる。
  • Google のAPIをGWTアプリケーションで使えるようサポート(Google Gears など)。
  • オープンソース
  • JavaScriptではなくJavaを使って開発できるので、純粋なオブジェクト指向でアプリケーションを設計できる[4]。誤字やデータ型の不一致など、JavaScriptで実行時に発生する主なエラーは、コンパイル時に検出できる。
  • GWTコンパイラが生成するJavaScriptのコードは、人間が読みやすい形式とダウンロードが高速な(読みにくい)形式を選択できる[4]
  • GWT向けの各種ライブラリをGoogleやサードパーティーが提供している。それを使ってGWTの機能を拡張可能[4]

使用可能なウィジェット

version 1.4(2007年8月)で提供しているウィジェットは以下の通り[5]

  • HTMLプリミティブ(ボタン、ラジオボタン、チェックボックス、テキストボックス、パスワードテキストボックス、テキストエリア、ハイパーリンク、リストボックス、テーブルなど)
  • プッシュボタン、トグルボタン
  • メニューバー
  • ツリー
  • タブバー
  • ダイアログボックス
  • 各種パネル (PopupPanel, StackPanel, HorizontalPanel, VerticalPanel, FlowPanel, VerticalSplitPanel, HorizontalSplitPanel, DockPanel, TabPanel, DisclosurePanel)
  • リッチテキストエリア
  • サジェストボックス(自動補完)
  • デートピッカー(日付選択)

GWTにない一般的ウィジェットはサードパーティのライブラリで実装している。例えば、Ext GWTGWT Component LibraryGWT Widget LibraryGWT-ExtGWTigerRocket GWT などがある。

関連項目

脚注

  1. Google Web Toolkit License Information” (2007年2月23日). . 2007閲覧.
  2. Google Web Toolkit Release Archive”. Google. . 2007閲覧.
  3. 3.0 3.1 3.2 Olson, Steven Douglas (2007年). Ajax on Java. O'Reilly, 183. ISBN 978-0596101879. 
  4. 4.0 4.1 4.2 4.3 Perry, Bruce W (2007年). Google Web Toolkit for Ajax, O'Reilly Short Cuts. O'Reilly, 1-5. ISBN 978-0596510220. 
  5. Widgets Gallery”. Google. . 2007閲覧.

参考文献

  • Dewsbury, Ryan (2007年). Google Web Toolkit Applications. Prentice Hall. ISBN 978-0321501967. 
  • Chaganti, Prabhakar (2007年). Google Web Toolkit: GWT Java Ajax Programming. Packt Publishing. ISBN 978-1847191007. 
  • Geary, David (2007年). Google Web Toolkit Solutions: More Cool & Useful Stuff. Prentice Hall. ISBN 978-0132344814. 
  • Hanson, Robert; Adam Tacy (2007年). GWT in Action: Easy Ajax with the Google Web Toolkit. Manning. ISBN 978-1933988238. 
  • Cooper, Robert; Charlie Collins (2008年). GWT in Practice. Manning. ISBN 978-1933988290. 

外部リンク


テンプレート:Webアプリケーションフレームワーク テンプレート:JavaScript テンプレート:Widget toolkits テンプレート:Rich Internet applications