Coding for Fun

ruby on railsを中心としたウェブ技術つれづれ日記

Web系開発者がデスクトップアプリを開発しようとするときの10の選択肢

友達にちょっとしたデータ分析機能を頼まれました。エクセルで使えるようにして欲しい、とのことで、10年ぶりくらいにエクセルVBAを見てみたのですが、Ruby on Railsで甘やかされて育った私には、MVCもクロージャーもTDDもイテレーターもない、VBAの言語仕様と開発環境に耐えられませんでした。いっそのことだからまともなデスクトップアプリ作っちゃうか、作ったことないし、と無謀な挑戦を始めました。

どんなアプリでも、一番面倒かつユーザーの評判に直結するのはUI部分の作り込みなので、それを重視して選びました。あとは配布の容易さですね。時代はHTML5だし〜、HTML5のフレームワークを使えばウェブ技術そのまま使えるしそんなむずかしくないよね、デザインはThemeforestでいいし、とか思ったら見通し甘過ぎ。私の迷走をシェアします。


tidesdK

http://www.tidesdk.org/
Titanium Desktopがコミュニティメンテになったもので、HTML5系では最有力です。モダンで良さそうな感じ。Rubyもつかえるし、CSSjQueryが使えるのは、UIが楽そうで素晴らしいです。ただ、私の環境だとそもそもSDKが起動しなかった。あと、実績も心配。プラットフォームの癖とその対応方法が蓄積されてなさそうです。筋はすごくいいと思うので、半年か一年後にもう一度見てみます。一年後にコミュニティがまだ元気だったら、使ってみるかも。



残念ながら他にはHTML5フレームワークはないようです。

ChroniumEnbeddedを使ったオレオレHTML5フレームワーク

http://code.google.com/p/chromiumembedded/
ないならつくればいいじゃない。Stack Overflowでお薦めされていて、それも有りかな、と思いましたが、Rubyラッパーがないことにまずやる気をそがれ、Pythonで頑張るかと気を取り直したものの、やればやるほどtidesdk(の品質が低い模造品)に近づく気がして、あほらしくなってやめました。Do not reinvent the wheel。



気を取り直して別の道を探してみましょう。

.Net系の言語

ウィンドウズだと一番の選択肢です。C#のよい評判はよく聞きます。また、Visual Studioも昔ちょっと触った限りでは、いい感じです。ただ、私の環境はMacで、彼はwindowsなのでだめ。MacやLinux用.Netのオープンソース実装Monoはありますが、いい評判を聞きません。あと、コンパイラにお金を払うのは個人的には嫌いです。そのクローズドな感じがちょっと。PC変えるとお金払わなくちゃいけないのは現実不便だし。


MacCocoa

マック専用だと一番の選択肢ですが、彼はウィンドウズだからだめ。あと、MacCocoaは使いづらい、ってgithub for macを作った人が言っていました。


Adobe Air

クロスプラットフォームでカジュアルなアプリだとこれが一番多そうですが、あまりにクローズドな感じでちょっと。IDEが高くて趣味に合わない、と言うのが致命的。そもそもAdobeは本物のアプリをAirで作っているわけ?Eat your own dogfood, men.


RubyGUIプラットフォーム(Shoes, Visual Rubyとか)

Rubyは大好きなので、これができたら一番なんですが、スタンドアロンにするのが面倒そうです。それなりに大きなデータなので速度も不安。あと、Ruby系のGUIプラットフォームのオフィシャルサイトは、「ルック&フィールを改善するためのツールなんだから、もうちょっとサイトそのもののルック&フィールも考えた方がよろしいのではないでしょうか。」的な感じで、ちょっと・・・。

Visual Ruby
http://visualruby.net/

Shoes
http://shoesrb.com/



ここまで調査して、「これもだめ、これもだめ」ばかりでかなり疲れました。やっぱりメジャーなところじゃないとさまざまな問題が発生することが分かり、5年前に二週間やったきりのJava大陸に進出することを決意。

jRubyGUIフレームワーク

https://github.com/jruby/jruby/wiki/GUIFrameworks
これで、CRubyにあった配布の問題は解決します。ただ、やっぱりサイトがかっこわるいのは変わらず。完成度が低そうで、手を出すのが怖いです。ただでさえJavaは経験がないのに、フレームワークのバグと、IDEの設定ミスと、自分のバグを切り分けるのに苦労しそうです。


Griffon

http://griffon.codehaus.org/
もうRubyはすっぱり忘れて、ちゃんとJavaることにしました。Ruby on Railsを元にしたGrailsを元にした、デスクトップアプリフレームワークGriffonです。MVCとか、設定より規約とか、なんか覚えのあるフレーズがたくさんあって、安心感があります。Rubyを元にしたGroovyを使っているので、言語もそんなにJavaっぽくなくていい感じ。
参考書が出版されるくらいにはコミュニティも成熟しているようですし、とりあえずこれでいきます。つづく、かも。