|最近iOSアプリ界隈ではRubyMotionやMobiRubyが盛り上がってきてますが、AndroidでもRubotoをつかえば簡単にrubyで開発することができるようになります。そもそもjavaで実装された処理系であれば大抵javaクラスの呼びだしは簡単にできるようになっているので、jrubyやjythonでandroidアプリを開発することは以前から可能でした。以下のような問題があって実際にやるとなるとそれなりに面倒なものでした。jrubyやjythonをdalvikvm用バイナリ(dex)にコンパイルするのに時間がかかる1androidのjavaでは使えない機能を使って処理系を実装してある場合があるので、何らかの方法で回避する必要があるスクリプトのソースファイルの配置やパスの設定を自分でやる必要があり、パッケージングが面倒アプリのフットプリントが大きくなる2Rubotoをつかえばこのあたりの面倒をみてくれるので、ほとんどjavaを書く必要がなくなります。Ruboto自体は結構前からありますが、ここ1年くらいでもろもろの機能が充実してきて大分実用的になってきた感があります。以下Rubotoの使用方法について簡単に紹介します。MainActivityNameビルドとインストールrakeからビルドできるようになっています。rubyスクリプトの更新はコンパイル不要で反映できます。あとは普通にrubyを書くだけです。update_scriptsrubygemsを使う通常のGemfileと同じ内容を、Gemfile.apkという名前のファイルに書いてプロジェクトのルートディレクトリに置いておけば、rakeした際にlibs/bundle.jarを生成してapkにいれてくれます。詳細は以下の例を参考にしてください。platformというapkで提供されています。そのためアプリ本体にruby処理系を同梱する必要がなく、省サイズでコンパイルも速くなるというメリットがあります。Playで配布するようなアプリでは受け入れ難いと思います。これを回避する方法も提供されていて、プロジェクトを生成する際に--with-jrubyというオプションをつければjrubyを同梱したapkをビルドできるようになりますが、この場合は前述のメリットはうけられなくなります。コンパイル時間に関しては、rubyスクリプトだけを触っている限りは、dexの再コンパイルは必要ないのでそれほど気にならないと思います。|hekyllはimpress.js用jekyllテンプレのようなものだけど、スライドの位置を個別に指定する必要があってめんどうだったので適当なグリッドに配置するプラグインを書いた。jekyllのプラグインについてhttps://github.com/mojombo/jekyll/wiki/Pluginsに必要なことは大体書いてある。jekyllのディレクトリに_pluginsディレクトリを作り、その中に*.rbをおいておけば自動的にロードされる。プラグインの種類はおおまかに以下の4通り。サンプルは本家wikiにあるのでメモもかねて概要だけ。ようにして呼びだせるソースwikiで説明されているpluginの書き方を踏まえた上で、それを完全に無視する方法で実装した。Postクラスを拡張してhekyllにあうようにliquidに渡すデータを上書きしてるだけ。いい方法はあると思う。