BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JRuby GUI MVC Framework Monkeybarsが1.0へ

JRuby GUI MVC Framework Monkeybarsが1.0へ

ブックマーク

Javaツールキットを使用したGUIの開発をさらに簡単にしようとするJRubyライブラリは多数ある(参考記事)。Monkeybarsプロジェクト(リンク)のJames Britt氏(リンク)に話を聞いた。James氏による要を得た簡潔な説明は、以下のとおりである。

MonkeybarsはJRuby MVCフレームワークであり、Swing上に位置する。本質的にSwingをラップしないが、コントローラやモデルロジック(Ruby)から分離した ビューロジック(Swingクラスにカプセル化)を提示する。その意味において、Rubyでの開発を自由にしながらも、誰でも利用できる高品質な WYSIWYG Swing UIデザインツールを利用する。実世界のアプリケーションから抽出されたMonkeybarsは、最初はテストおよび大規模アプリケーションの保守を考慮 して設計された。

James氏は、Monkeybarsが対話を処理する方法について以下のように説明している。

Monkeybarsの目的の1つは、ビューとコントローラを切り離すことである。コントローラは直接ビューを参照することを必要としない。代わりに、信 号を使用し何かが実行されるべきであることをビューに間接的に知らせる。これにより、コントローラのテストがはるかに簡単になる。UIについて気をもまな くて済むからだ。

Monkeybarsは、実際のGUIコンポーネントを構築する方法を装備していない。その代わりに、GUIバインディングメソッドの選択を可能にする。

Monkeybarsは、Swing UIを表現するクラスを搭載する予定である。Happy Camperでは、ほぼ必ずNetbeans UIエディタを使用し、UIオブジェクトを描き、コンパイルし、アプリケーションのRubyコード経由でそれらを参照する。原則として、 Profligacy、Cherry、さらにはSwiXML + Builderでさえも使用することができる。それをおこなうコードをこれまで見たことはないが。(また、Monkeybarsへ計画されている追加に関 するコメントを参照し、インラインSwingコードの記述をより簡単にする)

James氏は、デベロッパがMonkeybarsを使用している状況について、以下のように説明している。

Monkeybarsのほとんどのユーザは、未開のJRubyアプリケーションでそれを使用している。しかし、既存のJavaアプリケーションにそれをド ロップした人を少なくとも1人知っている。Monkeybarsは、gemおよび jarとして利用可能である。(当然ソースコードとしても利用可能である。)


既存アプリケーション内のGUIスクリプトでMonkeybarsを使用できるかどうか、尋ねた。

Javaアプリケーションで、Monkeybarsを使用できるRubyコードをロードし実行することができる、またはRubyアプリケーションで (JRubyで実行されると仮定することで)、GUIを起動する場合、GUIを起動する。 しかしながら、その質問はデスクトップGUIをコードでトスアップすることについて考えさせられた。たとえば、Webアプリケーションを開発中、エラーが ブラウザや端末よりはむしろGUIでレンダリングされるとよい。MonkeybarsをRamazeアプリケーションに接続するのは実に簡単だと判明する ので、必要なときにSwingフォームをレンダリングすることができる。これをソースコードやドキュメントを表示するための接続がある、マルチウィンドウ のGUIコンソールアプリケーションに変換することは、興味深いプロジェクトだと言える。

Rawr(リンク)はMonkeybarsアプリケーションを開発する場合に便利なツールである。James氏はrawrを以下のように説明している。

Rawrは、現実世界の必要性から進化した、もう1つのプロジェクトである。便利なRakeタスクを提供することで、Monkeybarsアプリケーショ ンを実行可能なjarにバンドルする。また、Windows .exeファイルまたはMac .appを作成することもできる。(Linuxパッケージャーの追加作業に取り掛かっている。)これにはアイコン、メディア/コンテンツjarが含まれ、 さらにはJRubyをクラスにコンパイルして、ロード時間を迅速化する。これはタイムトラックアプリケーションである、JotBotのリリースのパッケージ方法である。初めて大量生産されるJRubyデスクトップだと信じている。

Monkeybarの今後について、尋ねた。

中核はかなり揺るぎないものである。1年近く、大幅な変更はない。今ここで抜本的改革をしたら、大量生産アプリケーションのリファクタリングが痛みを伴う だろう。なので、この基礎を変更する代わりに構築する予定である。 しかしながら、この安定性を持って検討している「あればよい」機能がいくつかある。たとえば、カスタムDSLやビルダー構文を使用してSwing UIクラスの作成を容易にすることを熟考している。Swingは巨大なので、そのすべてをラップしようというふりはしないが、多くの基本的なUI形式やコ ンポーネントが従来のRuby構文でより簡単に利用可能になる。 それを考慮すると、アプリケーションジェネレータを検討することができる。多くのアプリケーションには、一連の共通の形式や振る舞いがある。スプラッシュ 画面、システムトレーアイコン、ヘルプや「about」形式などである。コマンド行呼び出しで実行する最小限機能するデスクトップアプリケーションや Rakeタスクを取得するのは、簡単であるべきである。そして、インラインコードもしくはコンパイル済みのJavaクラスを使用して追加のUIコンポーネ ントが構築されアプリケーションは具体化される。 Logan氏は、ビューのバインディングに取り組んでいる。それは、使用中のモデルやビューでマッピングをおこなうより簡単な方法であり、データをつねに 同期しているかのようにさせる。 別のプロジェクトは、Swingができると思っていることだが、現在はできないか、簡単にはできない共通向けのヘルパーで構成されている。たとえば、コン ボボックスの具体的な項目あるいはテキストフィールドのコンテキストメニューを無効にすることができることである。それでも、Cucumber + RSpecをMonkeybarsと動作させるという、別の取り組みがある。その過程には、やや用心しなければならないようなことが待っている。

最後に、James氏はリソースやMonkeybarsの開発でフォローすべき箇所のリストを提供した。Monkeybarsコアチーム(現在、James氏、Logan Barnett氏、David Koontz氏)に質問をしてもよい:

当然、monkeybars.orgがある。現在1.0のドキュメントやスクリーンキャストのアップデートの作業中である。 われわれはFreenodeの#monkeybarsにあるIRCに属し、Monkeybars Googleグループもある。
http://groups.google.com/group/monkeybars
Logan Barnett氏は、Monkeybarsについてもブログに書いている。
http://www.logustus.com
RubyConf 2008でのDavid Koontz氏のムービーがある。
http://rubyconf2008.confreaks.com/monkeybars-easy-cross-platform-guis.html
Martin Slader氏は、Ruby ManorでMonkeybarsを取り上げた: http://rubymanor.org/videos/gui_manor_born/
JotBotをダウンロードし、無償のトライアルキーをリクエストすることで、大消費市場向けのMonkeybarsアプリケーションを試すことができる。
http://www.getjotbot.com
ユーザ支援のドキュメンテーションのためのより安定した拠点を確立するため、Kenaiへ動き始めている。
http://kenai.com/projects/monkeybars
体制が整い次第、Monkeybarsのサイトにて詳細を掲載する予定である。 twitterについて、われわれについて行くことができる。
@jamesbritt
@logan_barnett
@dkoontz
@thehappycampers


JRubyでGUIをビルドするのに、何を使うか?

 

原文はこちらです:http://www.infoq.com/news/2009/01/monkeybars-gui-mvc

この記事に星をつける

おすすめ度
スタイル

BT