先週にたまたま20%Offで販売していたRubyMotionのライセンス。
ちょうど一つ、作ってみたいアプリがあったし、以前から気になってたので、買ってしまいました。 20%Offでも15000円っていうのは、お高いですね。。
一年くらい前まではiOSエンジニアとして働いていたので、別にRubyで書かずとも問題ないのですが、 自分が以前までやっていた分野と、今やっている分野がカッチリ重なる分野だったので、まぁいい機会かな。と。
ものすごいお手軽感
まずはサンプル程度の簡単なものから作ってみようと思ったんですが、まずビックリしたのは圧倒的なお手軽感。 一本のサンプルを作るまでに、Xcodeの使い方を覚える必要もなく、手軽にデバイスにインストールまでできる。
$ rake device
でデバイスへのインストールが完了してしまう。ハンパない!
(ツッコミをもらって気が付きましたが、以前に自分のiPhoneを開発用端末にしてたから簡単だっただけっぽい。 開発端末としてiPhoneを登録してない方は、微妙に面倒な作業は残ってるかもしれない。)
RubyMineとの相性の良さ
僕は会社でも家でもRubyMineを使って開発しています。
Railsを書くときにもかなり重宝しているRubyMineですが、RubyMotionのコード補完もしっかりサポートしてる!
rubyで書けるRubyMotionですが、メソッド名はObj-Cを踏襲していて、かなり長い。(そこが愛らしいところでもありますが)
本職でObj-Cを書いていた時でさえ、Xcodeの補完にかなりお世話になっていた。あれを自力で書くなど、時間の無駄。。
ということで、RubyMineを使うと、Xcodeの補完と同じくらい、きちんと候補を並べてくれます。
そこに合わせて、rubyの書き心地の良さを合わせ持たせてくれる。
もし、vimやemacsなどの宗教をお持ちでない方なら、断然RubyMineがオススメかと。
Obj-Cの知識も必須
コードを書いてて思うのは、Obj-Cを知らないと、きっとなんも書けないな。って思いました。
ViewControllerのデリゲートがどの順番で呼ばれるのか、Viewの構築はどうやっていけばよいのか。
あまりテンプレートも転がってないので、Obj-Cをやったことがあるか、ないかで、やりやすさがグッと変わるなーという印象でした。
細かいことを気にしなくてもいいし、デバッグもrubyの知識を持っていればできるだろうし、総じて導入はしやすいとは思うのですが。
テスト超書きやすそう!
まだ、全然テストを書くに至ってないのですが、テストすごく書きやすそうです。
Obj-cだったころにはほぼテストなんて書かなかった。 残念ながらテストを書く文化に触れていなかったから。というのもあるし、
すごく書きにくそうだった。
RubyMotionにいたっては、specの知識を持ち合わせていればすぐに書き出せそうな感じ。
UI周りのテストだって
tap "hoge"
みたいな感じでアクションを起こせるっぽい。 Obj-Cのころには、jsでアクションを細かく書いていかないと駄目だったような気がしています。
そういう意味では、かなり書き出しなめらかにテストを書き進めることができそうだなーという印象です。
アプリは複雑になればなるほど、網羅的にテストするのも難しくなるし、自動テストできるのはすごく良いことですねー。
まずはSampleを書こう
RubyMotionを販売しているhipbyteのリポジトリにRubyMotionSamplesってのがある。
AppleのDeveloperサイトにもサンプルコードがごっそり置いてあるけど、とてもそれには及ばない。
文法をObj-Cからrubyに寄せているので、Obj-cで書いてたコードをRubyMotionではどう書くんだ。。。みたいなのが多々出てくる。
まずは勉強がてら、サンプルコードを書いて、このリポジトリにpull reqestしていくのが良さそう。