1. はじめに
アプリを開発する際、ユーザーからのフィードバックを得ることは非常に重要であり、レビューはユーザーがアプリをインストールするかどうかを決定する際の参考になります。
しかし、レビューリクエストは頻度が多いと、ユーザー体験を損なう可能性もあります。そこで、適切な頻度でレビューを促す仕組みを導入することが大切です。
本記事では、SwiftUIを使って、アプリ内でビューの遷移回数に応じてSKStoreReviewController
を用いたレビューリクエストを行う簡単な実装方法を紹介します。
ユーザーがある程度アプリを使い慣れた段階で自然にレビューを促すことで、ポジティブなフィードバックを得やすくし、UX(ユーザーエクスペリエンス)を向上させることができます。
2. 完成イメージ
FirstViewに3回遷移した時にレビューリクエストが送られる。
3. サンプルコード
・レビューリクエストを送るための関数
import StoreKit
// レビューリクエストをカウントして、特定の回数に達したらリクエストを送る関数
func RequestReview() {
// アクション回数を保存するためのUserDefaultsキー
let key = "reviewRequestCount"
let threshold = 3 // レビューをリクエストする頻度(例:3回に1回)
// 現在のカウントを取得
let currentCount = UserDefaults.standard.integer(forKey: key)
// カウントをインクリメント
let count = currentCount + 1
UserDefaults.standard.set(count, forKey: key)
// 指定回数に達したらレビューをリクエストし、カウントをリセット
if count >= threshold {
if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
SKStoreReviewController.requestReview(in: windowScene)
}
UserDefaults.standard.set(0, forKey: key) // カウントをリセット
}
}
・FirstView(3回遷移したとき、レビューリクエストが表示される。)
import SwiftUI
struct FirstView: View {
var body: some View {
NavigationView {
VStack {
Text("FirstView")
.font(.largeTitle)
.padding()
// SecondViewへのリンク
NavigationLink(destination: SecondView()) {
Text("Go to SecondView")
.font(.title)
.padding()
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(10)
}
}
.onAppear {
// 画面表示時にRequestReviewを呼び出す
RequestReview()
}
}
}
}
#Preview {
FirstView()
}
・SecondView
import SwiftUI
struct SecondView: View {
// dismissを使うためにEnvironmentから取得
@Environment(\.dismiss) var dismiss
var body: some View {
VStack {
Text("SecondView")
.font(.largeTitle)
.padding()
Button(action: {
// dismissを使って前の画面に戻る
dismiss()
}) {
Text("Back to FirstView")
.font(.title)
.padding()
.background(Color.red)
.foregroundColor(.white)
.cornerRadius(10)
}
}
.navigationBarBackButtonHidden()
}
}
#Preview {
SecondView()
}
4. まとめ
レビューリクエストをアプリ内で適切な頻度で表示することは、UXを損なわずにフィードバックを得るための重要な手法です。今回紹介した実装方法では、ビュー遷移の回数に応じて自動的にレビューリクエストを送信する仕組みを構築しました。
また、今回は3回に1回の頻度にしましたが、ご自身が適切だと思う頻度に設定して試してみてください。