Urumaの実行方法と Air / Silverlight との住み分け

Uruma は 0.2.0 から2つの使い方ができるようになりました

スタンドアローンでの使い方

Uruma のもつ StandAloneUrumaStartar クラスに画面定義XMLを指定して実行します。これはS2JFaceのときからサポートしていた方法で、RCPを使わずJFaceアプリケーションとして動作します。

また、ライブラリとしても使用可能で、自作アプリケーションの中から StandAloneUrumaStarter.getInstance() でインスタンスを取得してから画面を開くこともできます。

RCPアプリとしての使い方

0.2.0 の RCP 対応から始まった方法で、0.3.0 で洗練されました。

Uruma は Eclipse プラグインとして動作します。Uruma を利用したアプリケーション(Urumaアプリケーションと呼びます)は、OSGi バンドルとして実装して RCP の plugins ディレクトリに配置します。

Uruma は起動時に OSGi バンドルの中から Uruma アプリケーションを自動的に検出 & 実行します。

OSGi バンドルといっても、難しく考えることはなく、Eclipse プラグインよりも簡単です。Uruma は OSGi バンドルをパッケージングの仕組みとして利用しているだけなので、OSGi について学ぶ必要は一切ありません。

Uruma 0.3.0 では、雛形となるブランクプロジェクト を用意したので、これを利用すれば OSGi を意識せずにUrumaアプリケーションを開発できます。

また、将来的には「うるすた(UrumaStudio)」で、Uruma アプリケーションの生成をサポートしたいと思います。


で、今後の方向性ですが、できれば開発リソースを集中するために後者のRCPアプリとしての使い方に絞っていきたいと思います。(本当は両対応したいのですが、ちょっと大変なので・・・、その分 Uruma アプリケーションを簡単に開発できるようにすることを目指します)

Eclipse プラグインは難しい

Eclipse/RCP の提供する Workbench 環境は非常に強力ですが、使いこなすのが難しいのと、国内にはまだまだ情報が少ないのとで、あまり生産性が高いとはいえません

Uruma は、これをラップして、Eclipse プラグインSeasar2 の知識がなくても GUI アプリケーションを効率的に開発できるようにすることを目指しています。

Air / Silverlight との住み分け

巷では、Air / Silverlight に注目が集まっており、今のところ Air には軍配が上がりそうです。私自身、どちらも触っていないのであまり偉そうなことは言えないのですが、このどちらも本格的で複雑なUIをもつ業務アプリ(インターネットではなくイントラネットで利用するような)の開発には無理があるのではないかと直感的に思っています。すくなくとも、いま私が仕事で必要としているGUIの構築には力不足です。

また、今のIT業界のJavaエンジニアが従来のノウハウや製品資産(様々なOSSを含む)を捨ててこれらの RIA に移行するには、Air / Silverlight はまだまだ実績が足らないでしょう。

つまり、Java ベースの GUI プラットフォームは今後絶対必要になるはず。

というわけで、Uruma は Air / Silverlight とはちょっと違うところを狙っているのです。