RubyMotionで、Interface Builderを使ってLaunch Screen作成
久しぶりの更新。
年が明けてから仕事がバタバタしていて触れてなかったのだが、今月は久々にRubyMotionを書いていた。Launch Screen(スプラッシュ画面)を作る機会があったので簡単にメモっておく。
Interface BuilderでLaunch Screen作成可能に
どうやらXcode6(iOS8)から、Interface Builderを使って起動画面を作れるようになったらしい。iOS界隈の情報はそんなにキャッチアップしてないので知らなかった。
xib形式で画面を作成できるということは、AutoLayoutを使って1ファイルで全ての機種サイズに対応できるということ。機種ごとにサイズの異なる画像が必要なんだとばかり思っていた情弱の自分には朗報だった。
こちらの記事などに書いてある。
[iOS 8/Xcode 6] Launch Screen (スプラッシュ画面) を Interface Builder で作成できるようになりました | Developers.IO
RubyMotionからInterface Builderを扱う
Xcodeを使ってSwiftで書いている場合は、xibファイルとの連携はすぐに出来る。RubyMotionから同様のことをするには、ib
というgemを使用する。
# Gemfile gem 'ib'
bundle
すると、rake
タスクが追加される。
(※インストールされたib
のバージョンは 0.7.2)
rake ib:open
を実行。プロジェクトのルートディレクトリにib.xcodeproj
というディレクトリが作成され、Xcodeが開く。Xcode上でのディレクトリの構成は以下のようになっている。
これでInterfaceBuilderとの連携が可能に。
Launch Screen作成
(Xcodeの)Resources
のところで、右クリック -> 新規ファイル作成。ファイルのテンプレートとしてLaunch Screenを選択。新規作成されるxibファイルの置き場所は、RubyMotionプロジェクトのresources
ディレクトリ下にする。
以下の様なそっけないViewがXcode上にできる。
あとは、このxibファイルがLaunch Screenになるよう、RubyMotion側で設定してあげれば良い。上記で新規作成したファイル名がLaunchScreen.xib
であればこんな感じで。
# Rakefile Motion::Project::App.setup do |app| ... app.info_plist['UILaunchStoryboardName'] = 'LaunchScreen' end
これで準備完了。rake
でアプリをビルドする際に、このxibファイルも一緒にコンパイルされ、あのそっけない画面がアプリの起動画面として表示されるようになる。Xcode側で編集・保存をすれば、次のビルド時にそれが当然反映される。AutoLayoutの制約を付けながらパーツを付けていけば、複数の画像を作らなくて済みそう。
おわり
以上、簡単な備忘録。
RubyMotion書いてる時は、基本的にXcode使わずにviewを作ったりしていたが、Xcode側でやるのも良いかなと思った。(今作ってるのはそんなに複雑なものでもないので、コードだけで書けてしまうのだけれども)
ib
の説明はちょっと古いがこの記事が良さ気。
第八回 RubyMotion で Interface Builder を使うには? - 実践!RubyMotion - Mobile Touch