ブログ
 

【Swift】watchOS SwiftUI Appで起動時などの処理を追加

       

Life Cycle

Xcode12以降、プロジェクト作成時に「Life Cycle」という項目の選択が必要になりました。

UIKit App Delegate

OSによって使用するフレームワークが異なる。

  • UIKit App Delegate → iOS/iPadOS/tvOS
  • AppKit App Delegate → macOS
  • WatchKit App Delegate → watchOS

SwiftUI App

同じコードで複数のOSに対応が可能。

  • iOS/iPadOS 14.0〜
  • macOS 11.0〜
  • tvOS 14.0〜
  • watchOS 7.0〜

WKExtensionDelegateAdaptor

@UIApplicationDelegateAdaptorを使用して、AppDelegateを利用するという記事は多くあったのですが、
watchOS側の記事はほとんど見つからなかったので、誰かの役に立てばと思います。

import SwiftUI

@main
struct watchosApp: App {
    @WKExtensionDelegateAdaptor(ExtensionDelegate.self) var delegate
    
    var body: some Scene {
        WindowGroup {
            NavigationView {
                ContentView()
            }
        }
    }
}

class ExtensionDelegate: NSObject, WKExtensionDelegate {
    // function
}

上記コードのようにWKEtensionDelegateAdaptorを追加すると、WKExtensionDelegateを利用できるようになります。

 
  • このエントリーをはてなブックマークに追加