【2024年4月】弊社では、基本リモートワークで一緒に成長してくださるメンバーを広く募集させていただいております。 詳細はこちら

【Swift】アプリの初回起動を判定する方法についてサンプルコード示しながら解説!

【Swift】アプリの初回起動を判定する方法についてサンプルコード示しながら解説!
ふくしま

こんにちは!株式会社メモリアインクのふくしまです!

この記事では、Swiftで初回起動を検出するための実装方法についてサンプルコードを示しながら詳しく解説します。

この記事を読んで分かること…
・Swiftでの初回起動判定方法
・初回起動時の処理の実装方法

目次

初回起動の判定方法

概要

初回起動かどうかを判定するには、アプリが起動されるたびに特定のフラグの存在をUserDefaultsで確認します。フラグが存在しなければ、初回起動とみなし、フラグを設定して今後このロジックが実行されないようにします。

UserDefaults の使い方については、以下の記事で解説していますので、併せてご確認ください。

サンプルコード

import UIKit

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

    var window: UIWindow?

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let _ = (scene as? UIWindowScene) else { return }
        
        // 初回起動判定
        if isFirstLaunch() {
            // 初回起動時の処理
            print("初回起動です")
            return
        }
        print("初回起動ではありません")
    }

    private func isFirstLaunch() -> Bool {
        let hasLaunchedBefore = UserDefaults.standard.bool(forKey: "hasLaunchedBefore")
        if !hasLaunchedBefore {
            UserDefaults.standard.set(true, forKey: "hasLaunchedBefore")
            // UserDefaults.standard.synchronize() はiOS 12以降は必要ありません
            return true // 初回起動
        }
        return false // 初回起動ではない
    }

...

}

サンプルコードの説明

◾️行7: scene(_:willConnectTo:options:)メソッド内に初回起動判定の処理を記述します。
このメソッドは、アプリケーションが新しいシーン(セッション)に接続する際に呼び出されます。
◾️行10-16: この後定義するisFirstLaunch メソッドで初回起動か否かを判定し、結果に応じて異なる処理を行います。初回起動であればコンソールに”初回起動です”と表示し、そうでなければ”初回起動ではありません”と表示します。
◾️行19-27: isFirstLaunchメソッドを定義します。このプライベートメソッドは、アプリが初回起動かどうかを判定します。
行20:UserDefaultsを使用して、以前にアプリが起動されたかどうかを示すフラグ"hasLaunchedBefore"の値を取得します。
行21-25: このフラグがfalseまたは未設定である場合、アプリは初回起動と判断されます。このとき、フラグをtrueに設定して保存し、trueを返します。
行26: フラグがtrueである場合、アプリは初回起動ではないと判断され、falseを返します

SceneDelegateについては以下で詳しく解説していますので、併せてご確認ください。

まとめ

いかがでしたか?
この記事では、iOSアプリ開発における初回起動判定の方法について解説しました。
初回起動の判定は、チュートリアル画面の実装であったり、特定の設定を初期化する場合など、様々な開発シーンで用いられる技術になります。
この記事が、少しでも皆様のお役に立つことができれば光栄です。

ふくしま

この記事があなたのスキルアップに役立ったなら、次のキャリアステップを踏み出す絶好の機会かもしれません。エンジニアとしてのさらなる成長と挑戦を求めるなら、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
をオススメします!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次