imthinker::net

ふらふらうぇぶろぐ

Titanium Mobile で iOS 7 専用のスプラッシュ画像を設置する

久々。 Titanium Mobile 3.1.3.GA は iOS 7 に対応しているのですが、 iOS 7 とそれ以前でスプラッシュ画像を分ける方法が分かりませんでした。 3.1.4 や 3.2 の Continuous Builds のコードを見ていても、 iOS 7 用のスプラッシュ画像を設置するための何かがマージされた気配も無かったので方法を調べてみました。

何で iOS 7 用のスプラッシュ画像が必要か?

Xcode 5 ではアセットカタログというものを iOS アプリのプロジェクトで使えるようになりました。 Retina / 非 Retina の画像やアイコンを簡単に管理できる素敵な機能なのですが、この中にスプラッシュ画像を iOS 7 とそれ以前とで別のものにできる機能が用意されています。

iOS の HIG を読むと「アプリケーションの先頭画面に似せた起動画像を用意する。」ということが書かれているので、最初の画面を模した画像を用意したいわけです。この場合、 iOS 6 までの画像はマッチしなくなってしまいます。

じゃあどうする

Appcelerator のユーザーフォーラムを見てみると、 TiRootViewController.m をいじろうとかマッチョなことが書いてあるのですが、それはあんまりなので他の方法を模索します。結果としてはプロジェクトの tiapp.xml を修正すれば OK です。

Titanium Mobile 3.1.3.GA / Enable iOS 7 Launch Ima ...

これを <ti:app xmlns:ti="http://ti.appcelerator.org"> タグの中に記述して、 Resources/iphone の中に Default7 という名前で画像を設置すれば OK です。 Retina 用や 4 inch Retina / iPad 用などはそれぞれ適切な名前にしてあげれば OK です。

分かりやすい方法が公式に提供されると良いのですけどね。今後に期待です。