2021/5/10
「AppDelegateって何?」
「@UIApplicationDelegateAdapterってなんで使うの?」
と言う人に向けて、この記事は書かれています。
どうも、ちょげ(@chogetarou)です。
AppDelegateと言う、UIkitの時から使われているクラスがあります。
iOS14からは、デフォルトでは作成されなくなりました。
なので、iOS14から開発を始めた人にとっては、謎のクラスなわけです。
そこで、今回はAppDelegateクラスについて解説します。
アプリのイベント管理
AppDelegateは、元々アプリ起動時、最初に呼ばれるクラスです。
アプリ全体のイベントを管理するためのコードが含まれています。
このクラスにコードを追加することで、
- アプリの初期設定
- プッシュ通知
- ファイル共有
といったことが出来ます。
雛形
AppDelegateの雛形は、以下のようになっています。
class AppDelegate: UIResponder, UIApplicationDelegate {
func application (_ application: UIApplication, launchOptions: [UIApplication.launchOptionKey: Any]?)
-> Bool {
//処理
return true
}
}
処理の部分に初期設定やプッシュ通知の作成などを記述します。
アプリに適用
iOS14からは、AppDelegateクラスがデフォルトで作成されなくなることはお伝えしました。
つまり、今までのようにクラスを作っただけでは、アプリはデリゲートクラスを認識してくれないのです。
アプリにデリゲートクラスを使うよ!と知らせる必要があります。
そこで登場するのが、@ApplicationDelegateAdapter(長いので以下アダプター)です。
〜App .swiftファイルで、プロパティラッパを用いた宣言をすることで、アプリでデーリゲートクラスを使用することが出来るようになります。
struct DeleApp: App {
var body: some Scene {
//デリゲート使います
@ApplectionDelegateAdapter(AppDelegate.self) var appDelegate
WindowGroup {
ContentView()
}
}
}
これでアプリ起動時にAppDelegateクラスが呼ばれるようになります。
まとめ
- AppDelegateは、アプリ起動時に呼ばれる
- AppDelegateは、アプリ全体のイベントを管理している
- AppDelegateは、作成するだけでは使えない
- @ApplicationDelegateAdapterを使うことによって、アプリでAppDelegateが使えるようになる
この記事が少しでも参考になれば嬉しいです。
読んで頂きありがとうございました。
では、サラダバー!
参考

1人でアプリを作る人を支えるSwiftUI開発レシピ (技術の泉シリーズ(NextPublishing))
SwiftUIとは、iPhoneアプリ開発で用いられる新しいUIフレームワークです。本書はSwiftUIでアプリをつくりたい方のために、レイアウトシステム、基本Viewの使い方、Combine、豊富で実践的なサンプルアプリを掲載。Swift...

SwiftUI 徹底入門
iOS、macOSのアプリ開発を根底から変えるSwiftUIとは何かSwiftUIはXcode 11から利用可能になった、iOS、macOSアプリケーションのUI作成のための新しいフレームワークです。Swift 5.1で導入された機能をフル...

絶対に挫折しない iPhoneアプリ開発「超」入門 第7版 【Xcode 10 & iOS 12】 完全対応
もっとも売れているiOSプログラミング解説書! 売上実績ナンバー1の本書が、最新開発環境にあわせての改訂となります。本書は、これからはじめてiPhoneアプリ開発を学ぼうとしている人にとって少しでも役立つ本であるために、「誰一人、絶対に挫折...
コメント