Eclipse RCPによるGUIアプリ(1)

ってなわけで、少し前からそんなものを開発することになった。

最初の調査

  • GUIツールキットとしてのAWT, Swing, SWTの比較
  • 簡単なGUIアプリケーションをEclipse RCPで作ってみる(exportして単独のアプリとして実行できるところまで)
    • テンプレートをHello RCPでつくっていたので、exportしても完全に単体で実行可能な形でパッケージングできなかった。
    • テンプレートをRCP Mail Templateを選択して作ることで解決。
  • jfaceに慣れるため、デフォルトのRCPメールテンプレートをカスタマイズしていきながら、ファイルエクスプローラと電卓機能(数字はボタンではなくテキストフィールド、2値の加減乗除のみ)を作る
    • Viewの追加とか(allow Multipleをtrueにしないでエラーに出ることがあった。デフォルトで追加したらtrueにすることできないのかな?)
    • ウィジェットの配置とか(まーこれはとりあえず適当にやったけど)
    • Viewerの使い方(List-, Table-, Tree-)とか。
    • ContentProviderとLabelProviderを使って見た目の調整。
    • ただ、イベント処理(ファイルエクスプローラで、左のファイルツリー内のフォルダが選択されたときのイベントの実装)がビューに埋め込まれているのが、これでいいのか自信ない。

で、思ったこと。

なんとなくつくろうとしているもんは、ガリガリ作りこんでいけばできそうなんだけど、Jfaceとかのうまみを損ねないような、開発の指針みたいなのが欲しい。例えば、パッケージ構成はどうするのがデファクトなのかとか(とりあえず、xxx.view, xxx.action, ...みたいに分けてみたけど)。開発も一人でやるわけじゃないので、GUI部分とロジックを切り分けるためのアーキテクチャとかね。
やっぱオープンソースのアプリのソースコードを見てみるのが一番いいのかな。そこそこ小さくて、それなりに色んな機能を盛り込んでるのないかな…。

Eclipse RCP examples:
http://www.ralfebert.de/blog/eclipsercp/rcp_examples/

Agile RCPってのがあるみたい。これがあるとUI部分も100%ユニットテストでカバーできる?そこまで豊富な機能を盛り込むつもりもないから、インタフェースやクラスが細かく増えていくのもちょっと嫌だったりするんだけど。

なお今回は、テストの効率化をチャレンジテーマに掲げてみた。だから、開発の初期段階からどうテストしてくか、どうテストを自動化するか、テストしやすい設計にする、とかその辺りを意識してやってきたい。

ドローツールを作るのは難しいのかな(キーワード:GCCanvas、draw2d)
Tips LINK: