🪶

SwiftUIでアプリ起動時に、GoogleAnalyticsを使う

2024/08/03に公開

アプリ起動時にログを収集したい

前回の記事で、ボタンを押すと、GoogleAnalyticsを使用して、ユーザーがアプリを使用しているログを収集するのをやってみましたが、アプリ起動時にやって欲しいという場合があります。

その場合どうするのか?

このサイトを参考にする必要があった。

https://firebase.google.com/docs/ios/v4-naming-migration-guide?hl=ja

これを使う。

class AppDelegateの中で、overrideした、init()メソッドの中に、FirebaseApp.configure()を移動させて、func application()メソッドの中に、今回の使用に合わせて作ったログを収集するコードを書くと、いい感じやってくれます。

init()メソッドはこんな感じ

override
    init() {
        super.init()
        // ここに書く
        FirebaseApp.configure()
    }

func application()メソッドはこんな感じ

func application(_ application: UIApplication,
                   didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
      // ここに書く
      Analytics
          .logEvent(AnalyticsEventAppOpen, parameters: [AnalyticsParameterMethod: "launch"])
    
    return true
  }

全体のコードはこんな感じですね。この状態でビルドすればログを収集してくれるようですね。

import SwiftUI
import FirebaseCore
import FirebaseAnalytics

class AppDelegate: NSObject, UIApplicationDelegate {
    
    override
    init() {
        super.init()
        FirebaseApp.configure()
    }
  func application(_ application: UIApplication,
                   didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
      Analytics
          .logEvent(AnalyticsEventAppOpen, parameters: [AnalyticsParameterMethod: "launch"])
    
    return true
  }
}

@main
struct FirebaseAnalyticsTutorialApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

ビルドした後に、時間がたつとログを収集してくれました。

まとめ

開発してるアプリで、アプリが起動したときだけ、GoogleAnalyticsを使用して、ログを収取して欲しい要望があったので、詳しい人に聞いてみてやってみたら、機能を実装できました。ライフサイクルへの理解がまだ足りないなと悩みができました💦

Discussion