XIBのロードを切って、アプリ起動を早くしようと思った

http://d.hatena.ne.jp/miurror/20081213/1229101376#c
↑を参考に自前でVIEWを作成し、XIBを使わなくてすむようにしてみた。


ただ上の方法だけだと、XIBファイル自体のロードが切れるわけではないんでエリカ本を参考に
XIBファイル自体を削除&plistの項目(Main nib file base Name)もカットするとXIBを読み込まない作りにできる。


さらにロードしない場合、XIBで設定してたはずのUIApplicationのdelegate先が設定されなくなるので↓のようにmain.mで設定する必要あり。(でないとapplicationDidFinishLaunching呼ばれなくなっちゃう)

UIApplicationMain(argc, argv, nil, nil);
↓
delegateする@interface名を設定
UIApplicationMain(argc, argv, nil, @"myAppDelegate");

[追記]情報頂きました。この場合、window自体も自前で作る必要があるみたい。ビュー追加前にウィンドウ作成する一文追加する必要あり
http://iphone-dev.g.hatena.ne.jp/ktakayama/20090325

window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
みたいな

やってみた結果、起動時間(スプラッシュ表示時間)が4〜5秒 --> 1〜2秒になった。XIB必要としないようなタイトルならやる価値はあるかも。
ウィンドウ作成しなかったから早かっただけみたい・・・。やりようによってはアドバンテージあるのだろうか。



エリカさんのサンプルは↓のc01ってやつ。
(ちなみにこのサンプルcode signエラーでるのでそれの回避方法は→ 他人のプロジェクトをビルドする方法
http://code.google.com/p/cookbooksamples/downloads/list

:-)