xcode & toolchain ハイブリッドな iPhone アプリを作成する上での TIPS

現在、iPhone アプリを開発する環境としては大きく2種類の選択肢があります。

一つはアップルから公式に提供されている iPhone SDK を使用する方法、もう一つは saurik 氏によって公開されている toolchain 環境を使用する方法です。

iPhone SDK は無料で公開されていますが、作ったアプリを実機で動かそうとする場合や、配布しようとした場合には有料の iPhone Developer Program に加入する必要があります。また、iPhone SDK は OSX 用の環境しか用意されていないため開発するためには OSX が必要です。

逆に toolchain 環境は OSX 以外でも Linux やおそらく Windows でも iPhone アプリを開発することが可能ですが、この方法で作ったアプリケーションを使うためには iPhone を jailbreak する必要があります。

さて、今回はこの二つの環境どちらでも動くコードを開発する TIPS を紹介します。

インターフェースビルダーを使わない

いきなりですが、インターフェースビルダーで作成した nib ファイルは toolchain 環境で使用することができませんので、インターフェースはすべて objc のコードで書く必要があります。

最初は大変かもしれませんが、慣れればそんなに大変でもなくなります。Flex で Flex Builder を使わずに mxml 直書きしてインターフェースを作るのと同じイメージです。

AppDelegate クラスを明示的に指定する

main.m

int retVal = UIApplicationMain(argc, argv, nil, nil);

という部分があると思いますが、toolchain 環境ではこの Delegate 先を明示的に指定する必要があります。

int retVal = UIApplicationMain(argc, argv, nil, @"myappAppDelegate");

のような感じですね。

Info.plist の変数展開は使わない

Info.plist で ${PRODUCT_NAME} などというような変数を使用しているかもしれませんが、これも toolchain 環境では理解してくれず、そのまま文字列として使われてしまいますので、このような変数は使用せず、ちゃんと書き直してあげる必要があります

アイコンもちゃんと作る

iPhone SDK を使用した場合はアイコンファイルを用意するだけで、iPhone用にアイコンを加工してくれるのですが、toolchain だとここも自分で加工する必要があります。

iPhoneアイコン用のpsdテンプレートなど公開されていますので、そう言ったものを利用すると楽です。

http://www.keepthewebweird.com/iphone-icon-psd-template/

まとめ

以上のようなことに注意すれば、iPhone SDK と toolchain ハイブリッドなアプリケーションを作成することができます。

toolchain のようなオープンな環境で開発したい人や、OSX を持ってない人、AppleStoreではまだ公開できないようなアプリケーションを作成したい人などには参考になるかもしれませんね。

ただし JailBreak はくれぐれも自己責任でよろしくお願いします。