概要

起動回数を記録し、決まったタイミング(5回目・20回目)で SwiftUI native の in-app review を表示する機能。 ユーザーがアプリに馴染んだタイミングで自然に促す設計。

関連画面

誘導タイミング

起動回数動作
5回目初回レビュー依頼
20回目2回目レビュー依頼
その他表示なし

処理フロー

  1. アプリ起動時に ReviewService.recordLaunchAndShouldRequestReview() 実行
  2. 起動回数を launch_count に +1
  3. 5回目 or 20回目なら true を返す
  4. AppViewModel.shouldRequestReview = true
  5. HomeView 表示後 2秒待機
  6. @Environment(\.requestReview) で native レビューシート表示

API

@MainActor
final class ReviewService {
    func recordLaunchAndShouldRequestReview() -> Bool
    // 起動回数+1、5回目/20回目で true を返す
}

// 使用箇所
@Environment(\.requestReview) private var requestReview

.task {
    if appViewModel.shouldRequestReview {
        try? await Task.sleep(for: .seconds(2))
        requestReview()
    }
}

ビジネスルール

外部連携

連携先用途
SwiftUI requestReviewnative レビューシート起動
StoreKit (内部)requestReview の実体

エラー処理

requestReview は OS レベルで処理されるためアプリ側エラーは原則発生しない。 レートリミットでブロックされた場合もサイレント。

実装メモ

変更履歴

バージョン日付変更内容
1.02026-05-09初版作成