BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース リリースされたGWT-Ext 2.0についてSanjiv Jivan氏のインタビュー

リリースされたGWT-Ext 2.0についてSanjiv Jivan氏のインタビュー

2月6日にGWT-Ext 2.0(サイト・英語)がリリースされた。GWT-Extは、ドラッグアンドドロップ操作可能なツリー、ページング及びソート可能なグリッド、バリデーションフォーム、タブパネル等の様々なコントロールを提供しているGoogle Web Toolkit (GWT)(サイト・英語) のためのウィジェットライブラリである。GWT-Extで利用可能なコントロールはExtJSというJavascriptのウィジェットライブラリ(サイト・英語)が元になっている。GWT-Ext 2.0(source)はGWT 1.4(source)に最近リリースされたExtJS 2.0を統合したものだ。(ExtJS 2.0について詳細はInfoQのインタビュー記事「ExtJSのクリエータ、Jack Slocumが今回のリリース2.0について語る(参考記事・英語)」で読むことができる。)

下記がGWT-Ext 2.0でのおもな変更点である。
  • パフォーマンスの改善
  •  コンポーネントモデルの統合
  • 新しいレイアウトマネジメントAPIの追加
  •  Beanに適したAPIの追加
  •  いくつかの新しいウィジェットの追加
2.0のリリースノートはGWT-Extのウェブサイト(サイト・英語)で確認できる。

InfoQ.com は GWT-Extのクリエータであり主要開発者であるSanjiv Jivan氏とGWT-Ext 2.0に関するインタビューをチャットで行うチャンスに恵まれた。

2.0における変更点をあなた自身の言葉で簡潔に説明してほしい。
まず、Jack氏とExt 2.0の開発で素晴らしい仕事を行ったExtチームに賛辞を送りたい。GWT-Ext 2.0での多くの改良点はExt 2.0の機能強化とアーキテクチャの改良のおかげであるといってもいい。

今回のバージョンにおける最も大きなアーキテクチャ的な改良は、Componentモデルの統合とLayoutマネージメントの改良だ。すべてのウィジェットは一貫性のある階層構造となり、また、生成・レンダリング・破棄といったライフサイクルを持つ基底のComponentクラスのサブクラスとなっている。今回のバージョンは内部のComponentにのみ注意を払うContainerのレスポンシビリティと、割り当てられたLayoutManager によってハンドリングされるContainer内のComponentのレイアウトを分離させた構造となっている。これにより複雑なレイアウトを作成するのも容易になった。

また、GWT-Ext 2.0はBeanに適した扱いやすく、またGWT DesignerのようなUIビルダーと統合しやすいAPIを持つ。新しいすぐれた特徴として、グリッドのグルーピング、アコーディオン、プログレスバー、グリッドとツリー間のドラッグ・アンド・ドロップ等の機能があげられる。また、今回のリリースのハイライトの一つは、新しく改良された Showcaseデモがあることだ。 (http://www.gwt-ext.com/demo) 多くのグラフィカルなサンプルをそれらのソースと一緒に確認することができる。私はサンプルから学ぶことは非常に効果的であると強く信じており、このShowcaseデモはユーザの開発の助けとなることを望んでいる。

GWT-Ext 2.0のライセンスについても触れておきたい。FSFによると、GWTライブラリのコンテキストにおいてLGPLは、作者が明記しないかぎり事実上GPL として解釈されるということであった。私は、GWT-Extのライセンスページ (http://gwt-ext.com/license/) に明記し、それによりライセンス違反することなく、商用プロジェクトで GWT-Extを使用できるようにした。
GWT-Ext in 2.0のパフォーマンスをどのように改善したのか説明してほしい。開発者はどういったところでパフォーマンスの違いを実感できるか?
今回のバージョンでは大幅にパフォーマンスが改善されたわけだが、それはExt 2.0のパフォーマンスが改善されたおかげである。Ext 2.0のサイトでどのような改良がなされたかを確認することができるが、GWT-Extに関係する重要なパフォーマンスの改善点についてここでいくつか挙げておこう。
  • すべてのコンポーネント、ウィジェットは現在レイジーレンダリングをサポートしている。これはどういうことかというと、コンポーネントやウィジェットはいかなるオーバーヘッドもなくインスタンス化することができ、それらの描画処理はDOMに追加される必要のあるタイミングで遅れて実行される。これにより、特に大規模なアプリケーションにとっては、大幅なパフォーマンスの改善をもたらすことができる。
  • 適切なメモリ管理を行うため、フレームワークがすべてのコンポーネントの生成から破棄されるまでのライフサイクルを管理する。フォームやグリッド(テーブル)は特に改善され、ユーザはこれらのウィジェットを扱う際にその恩恵を受けるができる。
  • GWT-Ext 2.0では、ウィジェットの設定に分離された"config"クラスを使わなくてよい。Componentの属性を設定するためには、Component のsetterを単に呼び出せば良い。これはAPIを整理するだけではなく、コーディング量を減らすことにもつながる。
  • 最後に、百聞は一見にしかず。何人かのユーザはすでに、GWT-Ext 2.0にアップデートすることで自分たちのアプリケーションがどれだけ反応がよく、素晴らしいものになるかコメントしている。そして、GWT-Ext 2.0のShowcaseデモのサンプルを実行させれば、パフォーマンスが改善されたことを実感できるはずだ。
GWT-Ext 0.9.3の利用者はGWT-Ext 2.0にアップグレードするとどういった問題に直面するか?
レイアウトマネジメントAPIは変更されたが、ほとんどのユーザはこの変更を直観的で且つ複雑なレイアウトを素早く簡単に扱うことができる新しいAPIとして受け入れてくれている。分離されたconfigクラスはComponentの設定に必要はなく、Componentの setterを呼び出すことで設定を行うことができるようになった。アップグレードに際しては、数時間の単調な作業が必要となる問題があるにはあるが、これはそんなに頭を悩ませるような作業ではない。そして、ユーザはこの変更も再び受け入れてくれた。実際、Javabeanのアクセッサを分離された configクラスの代わりに使用するという変更は、GWT-Ext 0.9のユーザからのフィードバックに影響されたものだった。

今まで通りJavaのコンパイラを使用することができ、そしてコンパイラでコンパイルすることで非互換性がないこともわかっている。さらに、ユーザはアップグレードに関する質問をGWT-Extフォーラムで投稿することができる。アップグレードに要する時間はユーザによって異なるが、あるユーザは1万行のコードを持つアプリケーションのアップグレードを2日間で済ませたという報告をしている。ユーザはAPIが安定して動作することを期待していい。
2.0がリリースされた後にGWT-Extの開発はどうなるのか?次は何をするのか?
GWT 1.5はJavaとJavascriptの境界を越えたパフォーマンスの改善が行われており、その結果GWT-Extにも大幅なパフォーマンス改善をもたらすことになる。私はこの最適化されたGWT 1.5を利用するために、必要な(内部的な)変更を行っている。

 私はまたwikiドキュメントやユーザの生産性を向上させるためのFAQやチュートリアルをまとめ上げようと考えている。現在行っている機能の強化に加えて、ユーザの開発の助けとなるようなことにも注力して行きたいと考えている。成功するライブラリはユーザサポートが充実しているものだ。
GWT-ExtはLGPL 3.0ライセンス(サイト・英語)で配布されている。コミュニティのフォーラム、Wikiドキュメント、ライブラリのダウンロード、そしてさらに詳細なライセンスに関する情報の確認はGWT-Extのホームページ(サイト・英語)で行うことができる。

原文はこちらです:http://www.infoq.com/news/2008/02/gwt-ext-2

この記事に星をつける

おすすめ度
スタイル

BT