こんにちは!株式会社メモリアインクのふくしまです!
この記事では、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エンジニアを目指すなら【ユニゾンキャリア】
コメント