ロードマップ的なもの

id:dkameya さんから要望もあったので、今考えている S2JFace のイメージをまとめておきます。(今までの書込と重複するかもしれませんが)

S2JFace が目指すモノ

1.GUIを簡単につくる!(「GUIへの回帰」に備えて)

XMLGUI を記述できるようにすること。
→ 当面の実現手段として、GUIツールキットとしてはSWT/JFaceを採用
XML は独自仕様

2.JavaGUI アプリを簡単に構築するためのフレームワークの提供

単に「画面」をつくるだけでなく、画面とロジック側の接続もできるかぎり簡単にできるようにする。
S2JSF/Teeda の考え方をベースにする
→ 今のところは、Javaソースコード側にアノテーションによって画面との結びつきを記述。○○リスナーなど、内部クラスを大量につくる煩雑なコーディングからの解放。

3.Seasar2との連携による新たなる広がり

S2JFace は、画面の作成とコンポーネントとの連携を提供するが、Seasarの既存プロジェクトと併用することで、様々に応用範囲を広げる可能性を秘めている。

スタンドアロンGUIアプリケーションの開発
S2RMIS2AxisS2JMS等 Remoting 系等と組み合わせることで、クライアント/サーバ型アプリの開発が可能
S2Daoと組み合わせれば、DBメンテ系 GUIアプリの開発も簡単
→ 将来的にS2JFaceXMLでやりとりするWebアプリを提供すれば、インターネット越しで通信するアプリケーションみたいなもの(イメージ伝わるかな?)もできそう

具体的な機能

画面作成機能
  1. 独自仕様のXMLを読み込んで、コーディングレスでSWT/JFaceによる画面を表示
  2. 最終的には、一般的なGUIアプリに必要なコンポーネントはすべて提供(ツリーやテーブルももちろん含む)
  3. ツリーやテーブルは SWT ではなく JFace の TreeViewer や TableViewer をラップする予定
  4. イメージやフォント、カラーなどを一括管理して画面を効率よく作成する機能も提供
コンポーネントとの連携機能
  1. GUI上でアクションが発生した時に呼び出すJava側のメソッドをアノテーションで記述できるようにする
  2. その際、ValueバインディングWidgetバインディング を行い、Java側ができる限りGUIを意識しなくてもすむようにする

できれば実現したい機能

SWT-Unit(?)

要するに、画面試験の自動化をサポートするような機能

エディタの提供について

この手のフレームワークではよく議論されることかもしれませんが、画面の作成効率を上げるためのGUIエディタの提供も視野に入れています。

EclipseのVisualEditorベースか、Jigloo を利用するか、独自でつくるか・・・方針はまだ決まっていません。

VisualEditor は、使い倒してはいませんが反応がイマイチ遅い気がするので、踏み切れずにいます。

少なくとも、ポト・ペタでなくてもよいから、XML直書きしなくてもすむようななんらかのツールは提供したいと考えています。

このあたりをどれだけうまく提供できるかがカギだと思います。

実際のシステム開発では、お客様と打ち合わせしてGUIの仕様を作る人と、開発する人は分業することが多いです。そこで、GUIの仕様を作る人(=JavaSWTができないかも知れない人)にも簡単に使ってもらえるようにすることが、必須条件です。
(Javaが出来ない人はVisualEditor使えないでしょ、きっと)

RCP対応

したいです、が、まだ見えていません。

あんまり風呂敷広げると大変なので、ひとまずJFaceまでを第一目標とします。

当然、その先の視野には入っています。

FAQ(?)

なぜ独自仕様?

画面をXMLで記述するというアイデア自体は、珍しくなくて、XUL とか XAML とか、似たようなものはたぶん他にもたくさんあります。

もちろん、そのあたりをきちんと調べて吟味してもよいのかも知れませんが、どれが標準という決定打もあまりないと思います。

そうならば、あれこれ悩むよりも、見切り発車でも、あとで方針転換でもよい、まずは作ってしまえ、と思っているのです。

作って、使ってもらわないと見えてこないモノもたくさんあると思うから。

ビジュアルエディタ vs テキストエディタ

プログラミングがわからない人でも、手軽にGUIデザインができるようにエディタを作るのも必要。

一方で、現場で大量の画面を生産するため、自動生成等も視野にいれるとか、でバグのためにテキストエディタでちょこっと直す、といった運用も考えると、XMLはある程度人が見ても分かりやすくしたい。

つまり、テキストエディタベースでXML直書きでもそこそこ簡単に作れるようにしたい。

このバランスをどうやってとるかが、S2JFaceの課題です。

リリース予定

なにぶん、ナイトワークでつくってるので、なんとも言えません。したがって、以下に書いてあることはあくまでも、個人的な希望です。約束はできません(^^;

野望としては、SeasarCon 2006 Autumn でセッション発表とか。

ビジュアルエディタ以外の基本部分は、7〜8月頃にベータ版できればいいかな。

今回は、GUI系ということでユニットテストがやりにくい。だから、SWT-Unitをどうやって作るかが、品質向上のカギだったりします。


・・・と、書き殴ってしまいましたが、今考えているのはこんな感じです。

どこかでプレゼン資料にでもまとめたいですね。はい。