Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

RubyでGUIアプリを遣う際の選択肢

個人で使う分にはCLIの方が都合上がいい事が多いですね。実装楽ですし。
ところが……知人やお客さまにご利用頂くソフトウェアはそうはいきません。
まだまだ世間は保守的なのです。
ブラウザで楽しようとしても、客先にIE6しか入ってないなんてケースもザラです。

というわけで、今回はGUI生成法について備忘録ついでにまとめました。

Javaの眷属

以下はJrubyの環境を必要とします。
powerd by Sun-Empire(参考)を許容できるプロジェクトならば、非常に有効です。

jrubyfx

jrubyfxは、JavaFXJRubyからRubyishに書けるようにするためのラッパーライブラリです。

JavaにおけるGUIの定番JavaFXJRubyとの合わせ技でです。
配布の際、実行ファイル(exeとかbinとか)にできるので、素人さんにも優しい
詳しくは、http://blog.supermomonga.com/articles/jruby/javafx-rawr.htmlさんを参考にして頂ければと。

shoes

注意:
便宜上、JRubyの枠で紹介しています。
現行のShoes4へ完全移行した段階で純Ruby製になる予定です。

https://github.com/shoes/shoes
何度か紹介したRubyGUIライブラリです。
公式で

Shoes is the best little DSL for cross-platform GUI programming there is.
It feels like real Ruby, rather than just another C++ library wrapper.
If Gtk or wxWidgets is Rails, Shoes is Sinatra.

と宣言しているように、よくあるC++ライブラリと比較してRubyの文法に近いのが売りです。
ボタン数個の設定ツールなら、驚くほどサクサク作れます。
反面、JavaVMを噛ませた仕様であるためか、挙動が重いのが気になります。
ある程度込み入ったものは作り辛い感じです。

FSFの愉快な仲間

宗教上の理由、あるいはJavaマシンが環境の問題で利用できない場合の選択肢デス。
多くの場合、Javaよか高速で、環境構築もしなくてよいという利点があります。

GNOME(GTK+)

https://github.com/ruby-gnome2/ruby-gnome2
Gimpでも採用されているフリーソフトウェアGUIライブラリです。
歴史も実績も十分であり、クロスプラットフォームの採用実績は圧倒的といえるでしょう。
C++で実装されているので、高速です。
ところが、最近gdgdになってきているようで
それでも自由ソフトウェアGUI部門の古参として、十分錬り込まれたものです。


QT

https://github.com/ryanmelt/qtbindings
個人的最右翼。
市販版とオープンソース版があります。

[追記: 2000年の9月にQtはGNU GPLの下でリリースされ、それによりこの問題は本質的に解決されました。]   
GNUプロジェクトについて - GNUプロジェクト - フリーソフトウェアファウンデーション

というわけで、FSF公認の自由ソフトウェアです。
前述のGNOMEの揉め事もあってか、いろんなオープンソースプロジェクトがQTに移行してきています。
Ubuntuの次期デスクトップUnityはQTベースになるそうですしUbuntu Touchも同様にQT利用ですし。
今後の主力となる事請け合いです。

FLTK

http://mattn.kaoriya.net/software/lang/ruby/20130116150605.htm
mrubyの拡張として、FLTKを動かす……なんてのもあります。
実装はC++、ライセンスはGPLv2なのでオープンソースの仲間と言えます。
何より、実装量が軽いのがいいですね。
一部、GTK+からFLTKに移動してるのもあるようです。

それでもブラウザでやりたい貴方と私へ

……それでもやっぱり俺はHTMLやCSSJavaScriptのスキルを生かしてぇんですよ師匠!
という方は、Chromeのアプリケーションモードを使ってみるのも手かと思います。

大丈夫です。インストーラーと称してシレッと捩じ込めばバレません。(
shuzo-kino.hateblo.jp

2015/12/13
もっとモダンな環境が出てました
shuzo-kino.hateblo.jp