アプリのライフサイクル
:アプリ起動からシャットダウンまでのサイクル
:メモリやデータの管理による使いやすさ ⬆️セキュリティ処理可能
UIアプリケーション、AppDelegate
状況: AppDelegate オブジェクトが UIApplication オブジェクトから送信されたメッセージを受信し、それぞれを実行する関数を定義します
Not Running:アプリが実行されていない状態
Inactive:アプリは実行されているがイベントを受信していない状態
Active:アプリは実行されており、イベントが発生している状態
Background:アプリはバックグラウンドにあるが、イベントが発生している状態実行中のコード
サスペンド:アプリがバックグラウンドで実行されるコードが実行されていない状態
AppDelegate.swift ファイルのデリゲート関数
application(_:didFinishLaunching:) Run when the app first starts
applicationWillResignActive: - Executed when the app is moved from active to inactive
applicationDidEnterBackground: - Run when the app is in the background
applicationWillEnterForeground: - Executes when the app is moved from the background to the foreground (not yet running in the foreground)
applicationDidBecomeActive: - When the app is active and running
applicationWillTerminate: - Run when app closes
シーンデリゲート
iOS 13以降でサポートされるマルチシーン機能にしっかり対応するため
AppDelegate / SceneDelegate
AppDelegate
1. func application(_:didFinishLaunchingWithOptions:) -> Bool
この方法でアプリケーションのセットアップを進めます。
2. func application(_:configurationForConnecting:options:) -> UISceneConfiguration
このメソッドは、アプリケーションが新しいシーン/ウィンドウを提供したいときに呼び出されます。
3. func application(_:didDiscardSceneSessions:)
ユーザーがシーンを放棄したときに呼び出されます。
シーンデリゲート
1. シーン(_: willConnectTo: オプション: )
これは、UISceneSession ライフサイクルで呼び出される最初のメソッドです。最初のコンテンツ ビューである新しい UIWindow を作成し、ウィンドウの rootViewController を設定します。
(ウィンドウ: アプリが動作するビューポート)
2. sceneWillEnterForeground(_ :)
シーンがフォアグラウンドに移行するときに呼び出されます。
1) バックグラウンド→フォアグラウンドのとき
2) 初めてアクティブになったとき
3. シーンがアクティブになりました(_ :)
非アクティブからアクティブに遷移するときに呼び出されます。
4. sceneWillResignActive(_ :)
アクティブ→非アクティブに遷移するときに呼び出されます。
例)アプリスイッチャーの状況
5.シーンDidEnterBackground(_ :)
シーンが前景から背景に移行するときに呼び出されます。
次回フォアグラウンドに戻ったり、データを保存したり、共有リソースを返したりするときに復元できるように、状態情報を保存します。
6. シーン切断(_ :)
シーンがバックグラウンドに入ると、リソースを解放するためにシステムが切断される可能性があります。
(disconnect :セッションが切断されました/アプリが終了したことを意味しません)