この記事は RubyMotion Advent Calendar 2012の13日目の記事です。
BubbleWrapやRubyMotion Tutorialでお馴染みのClay Allsoppさんによって書かれたRubyMotion本がリリースされました。
章立て
- Foreword
- Ruby on iOS
- Creating a New App
- Filling the Screen with Views
- Organizing Apps with Controllers
- Representing Data with Models
- Showing Data with Table Views
- Testing Your Apps
- Example: Writing an API-Driven App
- Uploading to the App Store
序文とRubyMotionの概要
序文はRubyMotionの開発者Laurent Sansonettiさんによって書かれています。
続いてRubyMotionの成り立ちや、この本についての説明など概要部分が「Ruby on iOS」の章となっています。
3章の「Creating a New App」からは実践的になります。
ここは公式のスタートアップガイド(日本語)を詳しくしたような内容です。
RubyMotionを初めてさわる方でも迷うことなくビルドしてシミュレータが動作するところまで行けそうです。Rakefileの内容にも少し触れられていて公式のガイドより理解を深めながら実験できる作りになっています。
ViewとController
4章の「Filling the Screen with Views」はWindowとViewの階層構造やハンドリング方法の基本です。 最初は戸惑う、Viewをアニメーションさせる方法についてもわかりやすく解説されています。
5章の「Organizing Apps with Controllers」はiOS SDKプログラミングのキモであるUIViewControllerについての解説です。
rootViewControllerとして単純なUIViewControllerインスタンスを使う方法から始まって、UINavigationControllerを使ってのスタック型の画面遷移、UITabBarControllerの使い方、モーダルビューの使い方が説明されています。
このViewとControllerの解説パートはiOSの知識があるならば飛ばしても大丈夫かもしれません。
データの扱い方
6章の「Representing Data with Models」ではRubyMotionでMVCプログラムを書くための基本が説明されています。 モデルクラスを自分で定義してUIViewとUIViewControllerをどう連携させるか、データの初期化をどこでやるかなど初心者にとって迷うポイントだと思われるのでいいですね。
パラメトリックなモデルの初期化など簡単な動的モデルの構築についても書かれていて、Rubyもこれからという人にとって良いサンプルです。(ほんの触りだけではありますが)
データの保存はNSUserDefaultsを使ってでした。CoreDataを使ってRubyっぽくやる方法のアイディアがあったら良かったな〜。そこはiOSプログラミングやサードパーティライブラリのスコープで専門的すぎるのかしら。
7章の「Showing Data with Table Views」ではUITableViewにデータを表示する方法の解説です。
この章もiOSのUITableViewの知識があるならば飛ばしても大丈夫かもしれません。
テスト
8章の「Testing Your Apps」ではRubyMotionもくもく会でも毎回話題になる、みんなどういうのがベストプラクティスなのか分からなくて困っているテストについて。
しかし結論から言うと内容としては公式ドキュメントのWriting Tests for RubyMotion Apps(日本語)の方がずっと詳しい(爆)
この章の内容は、TDDでspecを書くための最初のとっかかりとして使い、UIのテストについては必要なオブジェクトをテスト時にどう引っ張ってくるかを理解するために4章の内容をじっくりやって、公式のドキュメントを参照しながら、必要なテストの語彙を自分で増やしていくのが良さそうです。
最近RailsプロジェクトでやっとTDD厨になったので、RubyMotionを使ったアプリを作るときはTDDで開発して、またの機会にそれを報告できたらいいなと思います。
実践的な開発例
9章の「Example: Writing an API-Driven App」ではこれまでの内容をもとにAPIをたたいて(Mashup!)表示をする簡単なアプリを作成する例となっています。
App Storeへの申請
10章の「Uploading to the App Store」はApp Storeへ申請するためのプロジェクトの設定方法と作業内容についての解説となっています。
iOSアプリの設定はハマりどころ満載で最初は本当に大変なので、本書の最も使える内容なのではないかと思われます。
まとめ
RubyMotionをこれからはじめる人にはとても良い内容になっていると思います。
今まではネットにある優れたチュートリアルをやるのが最初のステップとなっていましたが、さすがに書籍としてまとまっているだけあって、本書を写経して実際に動かしながら確認すればひと通りのことはできるようになるでしょう。
駆け足で紹介してきましたが、私もまだRubyMotionでアプリを作り上げたことがないレベルなので、時間を作ってひと通りやってみようと思っています。