Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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