AppDelegateとは

AppDelegateとはXcodeにてiOSプロジェクトを作成すると最初からあるクラスで、アプリ全体のライフサイクルイベントを管理する役割を担っています。

AppDelegateライフサイクルイベント(デリゲートメソッド)

デリゲートメソッド 説明
application:didFinishLaunchingWithOptions アプリ起動時
applicationWillResignActive: アプリ閉じそうな時に呼ばれる
applicationDidEnterBackground: アプリを閉じた時に呼ばれる
applicationWillEnterForeground: アプリを開きそうな時に呼ばれる
applicationDidBecomeActive: アプリを開いた時に呼ばれる
applicationWillTerminate: フリックしてアプリを終了させた時に呼ばれる

サンプルコード(Xcode8、Swift3.0)

このコードで実行すると各タイミングでログが出力されます。

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        print("アプリ起動時")
        return true
    }

    func applicationWillResignActive(_ application: UIApplication) {
        print("アプリが閉じる直前")
    }

    func applicationDidEnterBackground(_ application: UIApplication) {
        print("アプリを閉じた直後")
    }

    func applicationWillEnterForeground(_ application: UIApplication) {
        print("アプリを開く直前")
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
        print("アプリを開いた直後")
    }

    func applicationWillTerminate(_ application: UIApplication) {
        print("アプリを終了時")
    }
}

このようにログでライフサイクルイベントが確認できます。