😑
SwiftUI開発でAppDelegateを操作する
まずAppDelegateとは。。。
AppDelegateは、iOSアプリのライフサイクルイベント(起動、終了、バックグラウンド遷移など)を管理するクラスです。具体的には、アプリ起動時に通知設定や初期設定を行い、バックグラウンド遷移時には特定の処理を実行します。これにより、アプリの機能性が向上し、ユーザーにとっての利便性が増します。
目的
アプリ起動時のEventでログを出力可能にする。
実装
SwiftUIアプリではプロジェクト作成時にはAppDelegateファイルが作成されませんが、@UIApplicationDelegateAdaptorを使うことで、AppDelegateの機能を利用できます。
1. AppDelegateクラスの作成
新規ファイルを作成し、以下のようにAppDelegateクラスを定義します。
import Foundation
import UIKit
class AppDelegate: NSObject, UIApplicationDelegate {
/// <#Description#>
/// アプリ起動時の処理
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
print("___application:didFinishLaunchingWithOptions")
return true
}
}
2. AppDelegateの紐付け
プロジェクト名の最上位ファイル(ZennApp)で、作成したAppDelegateを紐付けます。
import SwiftUI
@main
struct ZennApp: App {
let persistenceController = PersistenceController.shared
// appDelegateの設定
@UIApplicationDelegateAdaptor (AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
.environment(\.managedObjectContext, persistenceController.container.viewContext)
}
}
}
この状態でアプリを起動すると、アプリ起動時に___application:didFinishLaunchingWithOptionsがログに出力されることを確認できます。
次回は、このアプリ起動時の処理にローカル通知の送信を追加し、アプリ起動後に通知を受信できるようにします。
Discussion