iOSで動くRuby開発環境のRubyPicoが第9回フクオカRuby大賞で優秀賞をいただきました。
「第9回フクオカRuby大賞」審査結果 - 福岡県Ruby・コンテンツビジネス振興会議
今回で4回目の挑戦となりますが前回のhonyomiではじめて賞をいただき、プレゼンの雰囲気や流れも分かってきたので今度こそ大賞を!とがんばってみましたが残念ながらHaconiwaという素晴らしいソフトウェアが大賞となりました。しかしなんと優秀賞をもらうことができたので大変うれしいです。
RubyPicoについて
mrubyが出始めの頃に「これでiOSやAndroidが動くRubyアプリがたくさん作られるんだろうなぁ」とか思っていたらmrubyの主戦場はnginxやH2OといったPCアプリケーションとなり、だれも作らないのなら自分が作ってみようという気分になったのがきっかけです。
最初はopenFrameworksを組み込んだofrubyというアプリを作っていたのですが、途中でiOSのアプリが64bit必須になり、当時のopenFramworks for iOSが64bitビルドに対応していなくて泣く泣くバージョンアップをあきらめました。
次にiOSネイティブのAPIをコツコツと組み込むしかないかと思い直し、写真が加工できたら普段プログラム書かない人も興味持つだろうと安易に考えて、写真加工をRubyスクリプトで行えるPictRubyというアプリを作りはじめました。
そして結局写真を撮るよりもプログラムを書くほうが好きだったと思い直し、よりCRubyに近づけたrequireや無限ループも書けるRubyPicoへと進化していきました。iOSアプリはマルチプロセスできないので、GUIを駆動させるメインスレッドとmrubyを実行するサブスレッドに分けて動かしてloop {...}
させてもアプリが止まらなくなったときは大変楽しかったです。
趣味としての挑戦
普段の仕事ではC++などを使うことが多くRubyPicoに使われているObjective-CやRubyはあまり使いません(Rubyは隙を見て無理やり使うけど)。私の場合インターネットに公開しているツールはいつもとちょっと違うジャンルで自分の作りたいものを作る、いわば趣味としての開発です。
フクオカRubyの参加者の方を見ていると仕事として参加されている方が多い印象でした(あくまで私の印象でちゃんと調べている訳でもないですが)。最近はオープンソース自体への参加者も仕事として参加されている人が増えているように感じます。そのこと自体はとてもいいことなのですが普段できないことを試したりまったくビジネスにはならないけど面白いことを試すための場としてのフィールドが狭くなっているのだとすると少しさみしい気持ちもあります。
ビジネスとして取り組んでいるオープンソースは実際役立つことが多くソフトウェアの質も高いものが多いです。しかし趣味のソフトウェアにも独特のよさがあるのではないかと考えています。お金にはならないけど楽しいこと優先で作れたり、飽きない限りいくらでも時間をかけることもできます。何よりも自由です。誰に頼まれた訳ではなくただ欲しいから、作りたかったから作ったソフトウェアはRubyのように時折不思議な魅力を持って多くの人々に使われます。私もいつかそういうものが作れたらいいなぁと分不相応なことを思っています。
仕事の延長で、趣味として、腕試しに、試しに作ったら割とよい出来になった、などたくさんのバックグラウンドを持つ人たちがもっとフクオカRubyに参加してくれたらよいなぁと思います。応募資料やプレゼンテーションの準備をするとその過程でより自分の制作物を客観的に眺めることができますし、審査員の方々の質問は示唆に富んで今後の開発に役立つので応募にかける時間は決して無駄にならないので是非。
今後の展望
Rubyを書いて動かすための基本的な土台はできてきたので、次のステップとしてもっとたくさんの人に使ってもらえるようになればよいと考えています。
審査員の方からいただいた質問の中で、コードのバックアップをとれないのかという話と、入力がPCと同じテキストエディタだけど例えばモバイルに特化した入力システムを作らないのか?という指摘がありました。
コードのバックアップはDropboxやiCloudと連携ができれば色々便利になりそうです。が、実行可能なコードのダウンロードをAppleが禁止していて実際他のアプリでも昔入ってたけど途中で外したりしているので基本的には大変そうです。今はgithub_downaload.rbというGitHub APIを叩く拡張ライブラリを書いて、PCでコード書く→git push→github_downloadでスマホにダウンロードとかやっています(しかし2手くらい多い)。自分の書いたコードをバックアップ用途としてクラウドに同期するところだけでも許してもらえたら大変うれしいのですが。
モバイルに特化したコード入力システム、フリック入力のようにサクサクプログラムをスマホから入力できるようになったらそれだけで大きな価値がありそうです。Smalrubyのようにブロック入力だけど実際にはRubyスクリプトが書かれている、みたいになっているといいなぁと妄想しています。何かお手本になるようなアプリがないか探してみようかな。
他にもSpriteKitを組み込んでRubyだけでモバイルゲームを作れるようにしたらゲーム作りたい人たちに使ってもらえるのではないか、などと考えています。
まとめ
福岡のカレーが大変美味しかったです。次はとりかわが食べたい。
発表のときに使ったスライドはこちらです。