ってなわけで、少し前からそんなものを開発することになった。
最初の調査
- GUIツールキットとしてのAWT, Swing, SWTの比較
- 簡単なGUIアプリケーションをEclipse RCPで作ってみる(exportして単独のアプリとして実行できるところまで)
- テンプレートをHello RCPでつくっていたので、exportしても完全に単体で実行可能な形でパッケージングできなかった。
- テンプレートをRCP Mail Templateを選択して作ることで解決。
- jfaceに慣れるため、デフォルトのRCPメールテンプレートをカスタマイズしていきながら、ファイルエクスプローラと電卓機能(数字はボタンではなくテキストフィールド、2値の加減乗除のみ)を作る
で、思ったこと。
なんとなくつくろうとしているもんは、ガリガリ作りこんでいけばできそうなんだけど、Jfaceとかのうまみを損ねないような、開発の指針みたいなのが欲しい。例えば、パッケージ構成はどうするのがデファクトなのかとか(とりあえず、xxx.view, xxx.action, ...みたいに分けてみたけど)。開発も一人でやるわけじゃないので、GUI部分とロジックを切り分けるためのアーキテクチャとかね。
やっぱオープンソースのアプリのソースコードを見てみるのが一番いいのかな。そこそこ小さくて、それなりに色んな機能を盛り込んでるのないかな…。
Eclipse RCP examples:
http://www.ralfebert.de/blog/eclipsercp/rcp_examples/
Agile RCPってのがあるみたい。これがあるとUI部分も100%ユニットテストでカバーできる?そこまで豊富な機能を盛り込むつもりもないから、インタフェースやクラスが細かく増えていくのもちょっと嫌だったりするんだけど。
なお今回は、テストの効率化をチャレンジテーマに掲げてみた。だから、開発の初期段階からどうテストしてくか、どうテストを自動化するか、テストしやすい設計にする、とかその辺りを意識してやってきたい。