アプリケーションのライフサイクル(1)

2010. 04. 16
iPhone SDKプログラミング大全』の本文中にさらっとイベントループの話が出てくるのですが、イベントループを説明するにはアプリケーション全体の流れを先に説明しないと理解し難いと思いますので説明します。

中身は『iOSアプリケーションプログラミングガイド』の劣化コピーのようなものなので、そちらを読んで理解できる方には不要な内容です。

アプリケーションのライフサイクル、つまり起動から終了までの一連の流れに関しては、『iPhoneアプリケーションプログラミングガイド』にまとめられているせいか、手元の本などでも説明されていません(見逃しているのかもしれませんが)。

本来ならばアプリケーションを作るにあたって最初に説明するような話なのですが、説明するにはそれなりの予備知識が必要になるので避けているのかもしれません。

実際、『iPhoneアプリケーションプログラミングガイド』も序章の時点で『iPhone OSでは、UIKitフレームワークを使用してネイティブアプリケーションを開発します』と言っている時点で、プログラミング初心者は置いてけぼりになるでしょう。

デリゲートやプロパティリストの話も出てきますし、その辺の説明を一通りした後で改めて取り上げるものでは無い、もしくは他の説明の中に組み込まれているからだと思われます。

以下の説明においても、過去当サイトで説明した事項に関しては、それを前提として話を進めたり、詳細を別ページに飛ばしたりしますのでご了承ください。


●アプリケーションのライフサイクル

アプリケーションのライフサイクル(起動から終了まで)は次のような手順になります。
(奇麗な図で見たい方は『iOSアプリケーションプログラミングガイド』をご覧下さい)

1)アプリケーションの起動

2)main()関数の呼び出し

3)UIApplicationMain()関数の呼び出し

3)イベントループ(イベント処理サイクル)

4)アプリケーション終了の問い合わせ

5)アプリケーションの終了

※2010.4.17修正
『3)UIApplicationMain()関数の呼び出し』を『2)main()関数の呼び出し』の中に組み込んでしまったので削除しました。


1)アプリケーションの起動

・ホーム画面でアプリケーションアイコンのタップ

iPhoneのホーム画面で、アプリケーションのアイコンをタップすることによってアプリケーションを起動します。

・トランジショングラフィックスの表示

アプリケーションの実際の起動画面を表示する間、画面中央からアプリケーションの画面が拡大するようなアニメーションが表示されます。
(トランジショングラフィックスの表示)

トランジショングラフィックスの画像はResourcesフォルダのDefault.pngが使われます。

Default.pngが無い場合は真っ黒な画面になります。
(ステータスバーがあると、アニメーションしていることが分かります)

Default.pngは(nibファイルを編集すること無く)Resourcesフォルダに入れるだけで適用されます。
(iPhone Simulatorで入れ替えたり削除して確認する際、消したはずの画像が出る場合は『ビルド』メニューの『クリーニング』を実行してください。iPhone Simulatorのリセットでは治りません)

Default.pngはあくまでトランジショングラフィックスの際の画像で、アニメーションが終わるとnibファイルで設定した背景画像(Background.png)になります。

背景画像を設定してなければWindowベースの場合は白、Viewベースだとグレイの画面になります。
(トランジショングラフィックスとは異なり、ResourcesフォルダにBackground.pngを入れただけでは反映されません。nibファイルで設定する必要があります)



参考文献

iOSアプリケーションプログラミングガイド

iPhone SDK 3 プログラミング大全 実践プログラミング (MacPeople Books)iPhone SDK 3 プログラミング大全 実践プログラミング (MacPeople Books)
(2009/09/08)
木下 誠

商品詳細を見る






SoundSport Pulse wireless headphones
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
04 | 2017/05 | 06
Sun Mon Tue Wed Thu Fri Sat
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

SoundSport Pulse wireless headphones
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR