Android vs iPhone【Controller】

By daichi1128
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

今回からAndroidアプリとiPhoneアプリの仕組みの比較をしてみます。
両方触ってみると全く違う部分もあるのですが、結構と似ている部分があったりするので、似ている部分は比較して、一緒に覚えてしまえばいいじゃん!というノリです。
今回はMVCでいうControllerにあたるActivity(Android)とUIViewController(iPhone)です。

ライフサイクル

AndroidもiPhoneもライフサイクル部分はフレームワークとして用意されていて、状態が変わるタイミングでそれぞれのメソッドが呼ばれるような作りになってます。

AndroidのAcitivity
Activity | Android Developers

iPhoneのUIViewController
iPhone Dev Center: UIViewController Class Reference

全部読むのは心が折れてしまうと思うので、表にしてみました。
基本的に上から順番にメソッドが呼ばれます。完全に1対1で対応をするわけではないので、そういう部分は複数行に分けて書いてます。

Android 説明 iPhone 説明
onCreate Activityの初回起動時に呼ばれる。このタイミングでビューの読み込みやその他パラメータの初期化を行う。 init
loadView
viewDidLoad
initで初期化、loadViewメソッドでビューの設定、viewDidLoadでビューロード後のプロパティ初期化などを行う
onStart ビューが画面に表示されるタイミングで呼ばれる viewWillAppear
viewDidAppear
ビューが画面に表示される前のタイミングでviewWillAppearが、表示された後にviewDidAppearが呼ばれる
onRestart 2度目以降の画面表示の時に呼ばれる。主にonStopからの復帰。 viewWillAppear
viewDidAppear
同上
onPause 画面ロックする時などに呼ばれる。 applicationWillResignActive アプリがスリープ状態になると呼ばれる。
(UIViewControllerではなく、UIApplication)
onResume 画面ロックなどから復帰した時に呼ばれる。主にonPauseの後。 applicationDidBecomeActive スリープから復帰時に呼ばれる
(UIViewControllerではなく、UIApplication)
onStop 別画面を起動するなどして、今の画面が非表示になるタイミングで呼ばれる。 viewWillDisappear
viewDidDisappear
画面が非表示になる前のタイミングでviewWillDisappearが、非表示になった後にviewDidDisappearが呼ばれる
onDestroy Activityが破棄されるタイミングで呼ばれる dealloc コントローラが破棄されるタイミングで呼ばれる。メモリの解放などをする

まとめ

onCreateからonDestroyまでがActivityが生きている。
onStartからonStopまでがActivityが画面に表示されている。
onResumeからonPauseまでがActivityがforegroundで動いている。
ということです。

上の表で対応でiPhoneの方もだいたい同じです。
これでControllerはAndroidもiPhoneも完ぺきです。

関連する投稿