🐙

【SwiftUI】iOS 16からのシンプルなストアレビューリクエストの出し方

2023/04/07に公開

アプリを作っている側からすると、アプリを評価をしていただくのはやっぱり嬉しいものです。

しかし、「本当にめっちゃくちゃいい!わざわざApp Storeのアプリのページにまで行って評価してあげたい!」くらいの人ではないとユーザーにアプリを評価していただくのは難しそうです。

そこでアプリレビューを促すAPIを使用するのですが、iOS 16からはその方法がとてもシンプルになっていた為、紹介します。

環境

  • Xcode 14.2
  • iOS 16.2

はじめに

今回は例としてonAppearでリクエストを出していますが、実プロダクトではHIGに沿ってユーザーに好感をいただける場所で実装して下さい。

iOS 16未満

iOS 16未満では下記のようなコードでストアレビューリクエストを表示していました。

if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
    SKStoreReviewController.requestReview(in: scene)
}

使用例

import SwiftUI
import StoreKit

struct ContentView: View {
        
    var body: some View {
        Text("How to request review")
            .onAppear {
                requestReview()
            }
    }
    
    private func requestReview() {
        if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
            SKStoreReviewController.requestReview(in: scene)
        }
    }
}

iOS 16

EnvironmentValuesrequestReviewというプロパティが追加されている為、下記のコードでシンプルに呼び出しが可能です。

import SwiftUI
import StoreKit

struct ContentView: View {
    
    @Environment(\.requestReview) var requestReview
        
    var body: some View {
        Text("How to request review")
            .onAppear {
                requestReview()
            }
    }
}

最高ですね。

おわりに

簡単にレビューリクエストが出せるようになったとはいえ、リクエストのタイミングは大事にしたいですね。

  • HIGに記載されていた考慮ポイント
    • 最初の立ち上げ時またはオンボーディング中に評価を求めないでください
    • ユーザーの邪魔をしないでください
    • 評価リクエストが最も理にかなっている論理的な一時停止または停止ポイントを見つけてください
    • レビューリクエストは365日以内に3回までしか表示されない

良い評価をいただいてアプリ開発のモチベーションに繋げていきたいです。

lilossa-banner

参考

https://developer.apple.com/documentation/storekit/requestreviewaction
https://developer.apple.com/documentation/swiftui/environmentvalues/requestreview
https://developer.apple.com/design/human-interface-guidelines/patterns/ratings-and-reviews/
https://www.hackingwithswift.com/quick-start/swiftui/how-to-ask-the-user-to-review-your-app
https://dev.classmethod.jp/articles/requestreview-with-appstorage/

Discussion