RubyMotionはじめました

  • 2013年9月19日 01:06
  • ruby

身の回りのiTunes関連で書きたいコードはtaifu, musical, itunes-clientあたりが落ち着いて一段落しました。 そろそろここらでiOSアプリを書けるようになりたいなぁ、でもObjective-Cをゼロから学ぶのもなかなか時間かかりそうだなぁ、、ともやもやしていたところ巷で噂のRubyMotionの存在を思い出したので、週末軽く手を出してみました。

RubyMotionについて細かな説明は省きますが、要するにRubyでネイティブのiOSアプリを作れるコンパイラ、テストスイートなどのツール群です。 Xcodeを(インストールはされていないとダメですが)起動しなくても、ターミナル+好きなエディタでサクサクとTDDでiOSアプリを書けるのが非常に良さそうです。ひとまずこの記事がいい感じにまとまってて良さそうです。

最初の一歩

ひとまず僕はこんな環境で始めてみました。

motion-modeはさくっとDash連携ができて、「このAPIどういう意味なんだ。。」とか疑問に思ってもすぐ調べられるのがとてもいいですね。補完は「ものすごく賢い!」とまでは正直思わなかったのですが、まぁまぁいいかな、な感じ。ここはさすがにXcodeの方が賢そうではあります。

チュートリアル

一番驚いたのは日本語情報が結構多いこと。 とくにRubyMotion.jpは、とんでもないほどの量の翻訳ドキュメントが揃っています。チュートリアルも文句ないレベルで翻訳されているので、ひとまずこれをなぞれば良さそう。僕もUITabBarController付けただけのありがちなサンプルアプリを作ってムフムフしていました。XcodeのDeveloperPreview版を利用したら、ちゃんとiOS7用でビルドできましたよ。

テスト

RubyMotionに興味をもったきっかけの1つがRSpecぽい形でテストが書けること。マジで??と最初はびっくりしたけど、確かにこんな感じで書けた。 これは、タップして状態が変わってるかどうかのテスト。

describe "button controller" do
  tests ButtonController

  it "changes instance variable when button is tapped" do
    tap 'Test me!'
    controller.instance_variable_get("@was_tapped").should == true
  end
end

よく見たらRSpecぽいけど、実はちょっと違う。

というのも中身はBaconというミニマムRSpecクローンをforkしてObjective-C用に拡張してできたMacBaconというものが利用されています。 ミニマムなクローンなので、当然のごとく本家RSpecには無いものも多くあって、subjectもletもcontextすら無い、、とRSpecに普段慣れている人にとってはむずむずしそうな内容。まぁテストをRubyで書けるだけでもかなりいいのですが。

ひとまずcontextはdescribeにalias張るだけで簡単にできるので、MacBaconにcontextを利用できるようにするPull Requestを送ってみたところ、早速取り込んでもらえました。

ただ、この変更がRubyMotion本家にどうやって反映されるのかは正直よくわかっていないので、もうちょっと掘りたいところ。MacBaconはまだまだ手が出せそうな雰囲気があるので、ここはいろいろ貢献していきたいと思っています。

まとめ

ひとまず身近な開発環境でiOSアプリを作ることができるようになりました。

iOSのAPIは正直まだまだ全く理解できていないので、作りたいものを作れるレベルには全く達していないのですが、少しづつ手を動かして学びながら怪しいアプリを作っていこうと思います。

関連広告

Trackbacks:0

TrackBack URL for this entry
http://blog.katsuma.tv/mt-tb.cgi/266
Listed below are links to weblogs that reference
RubyMotionはじめました from blog.katsuma.tv

Home > ruby > RubyMotionはじめました

Search
Feeds

Return to page top