はじめる!Ruby(Motion)でiOSアプリ開発
ついにこの日がきました。そう、iPhone・iPadアプリ(iOSアプリ)をRubyで開発できるようになったのです。
さっそく、いっしょにやってみましょう。
[STEP1] RubyMotionのインストール
iOSアプリをRubyで開発するには RubyMotion が必要です。 Write cross-platform native apps in Ruby | RubyMotion から購入します。(実は無料ではないのですよね〜)
RubyMotionはあのMacRubyの開発者の Laurent Sansonetti がフルタイムで開発しているソフトウェアです。彼はすでにApple社から離れてヨーロッパでこんなことをしていたのですね。
今なら25%オフのセールをしていて日本円で12,348円です。(最後の8が5だったらよかったのにね)
iOSデベロッパープログラムと合わせると約2万円の出費ですね。これを高いと考えるか適切と考えるとかはこの記事を最後まで読んでから判断してもらえればと思います。(だって、他の選択肢がObjective-Cだからね)
RubyMotionを購入するとインストーラのダウンロードURLとライセンスキーが提供されます。
ダウンロードしたインストーラを起動してRubyMotionをインストールします。
ライセンスキーを入力するとRubyMotionのダウンロードが始まります。インストーラにはRubyMotion自体は含まれておらず、ライセンスキーで認証してからダウンロードさせる仕組みなのですね。
これでRubyMotionをインストールできました。
念のためインストールできたかどうか確認してみましょう。ターミナル.appを起動して次のコマンドを実行します。
$ motion -v (以下、実行結果) 1.3
[STEP2] Xcodeのインストール
当然、RubyMotionでiOSアプリを開発するためにはiOS SDKが必要です。
iOS SDKはXcodeに含まれているのでApp StoreからXcodeをインストールします。
また、iOS 5のシュミレータもインストールします。Xcodeを起動してメニュー[Xcode]-[Preferences...]を選択して、DownloadsタブのComponentsからiOS 5.0 Simulatorをインストールします。
[STEP3] Hello World
さぁ準備ができました。簡単なサンプルプログラムとして画面に「Hello World」というメッセージダイアログを表示するアプリケーションを作ってみましょう。
ターミナル.appを起動して次のコマンドを実行してアプリケーションのひな形を作成します。
$ motion create Hello (以下、実行結果) Create Hello Create Hello/.gitignore Create Hello/Rakefile Create Hello/app Create Hello/app/app_delegate.rb Create Hello/resources Create Hello/spec Create Hello/spec/main_spec.rb
続いて次のコマンドを実行します。(RubyMotionはMac OS X標準添付のRubyインタプリタを使いますのでRVMなどで独自のRuby処理系をインストールしている場合は/usr/bin/rakeというようにrakeコマンドをフルパスで指定します)
$ /usr/bin/rake (以下、実行結果) (in /Users/kouji/work/RubyMotion/Hello) Build ./build/iPhoneSimulator-5.1-Development Compile ./app/app_delegate.rb Create ./build/iPhoneSimulator-5.1-Development/Hello.app Link ./build/iPhoneSimulator-5.1-Development/Hello.app/Hello Create ./build/iPhoneSimulator-5.1-Development/Hello.app/Info.plist Create ./build/iPhoneSimulator-5.1-Development/Hello.app/PkgInfo Create ./build/iPhoneSimulator-5.1-Development/Hello.dSYM Simulate ./build/iPhoneSimulator-5.1-Development/Hello.app (main)>>
しかも最後の行に「(main)>> 」と表示されています。いかにも何か入力してくださいって感じですよね。じゃあ、その希望に答えちゃいましょう。
(main)>> alert = UIAlertView.new (以下、実行結果) => #<UIAlertView:0x6c6f090> (main)>> alert.message = "Hello World!" (以下、実行結果) => "Hello World!" (main)>> alert.show (以下、実行結果) => #<UIAlertView:0x6c6f090>
どうです?みなさんの想像通りメッセージダイアログが表示されましたよね。
当然メッセージダイアログを消すこともできます。
(main)>> alert.hidden = true (以下、実行結果) => true
「いいね」って感じですよね〜。
動作確認はこれくらいにして、一旦Helloを終了させます。
(main)>> quit
それではプログラムを作成してみましょう。
好きなエディタでファイル「Hello/app/app_delegate.rb」を開きます。そして次のように修正します。
class AppDelegate def application(application, didFinishLaunchingWithOptions:launchOptions) alert = UIAlertView.alloc.initWithTitle("Hello", message: "Hello World!", delegate: nil, cancelButtonTitle: nil, otherButtonTitles: "OK") alert.show true end end
これでHelloは完成です。
実際のiOSデバイスで試すにはiOSデベロッパプログラムに参加してから次のコマンドを実行するとできるようです。(すみません、まだ私も試せていません...)
$ rake device
[STEP4] これから
さぁ、これでRubyでiOSアプリを開発する環境が整いましたね。あとはすばらしいアプリを開発するだけです。Rubyを使ってね :-)
https://github.com/HipByte/RubyMotionSamples でHelloも含めて11個のサンプルプログラムが公開されています。参考になるアプリがあるのもいいですね〜。