LoginSignup
23
13

More than 5 years have passed since last update.

SwiftRater を使って好きなタイミングで SKStoreReviewController を表示する

Last updated at Posted at 2017-03-30

TL;DR

iOS 10.3 からアプリ内でレーティングできる SKStoreReviewController が使えるようになりましたが表示するタイミングを調整しないといけないですよね。その調整が簡単にできるライブラリ SwiftRaterを作りました。

SKStoreReviewController

iOS 10.3 からアプリ内でレーティングできるようになりましたね。記事もいくつか出ています。

ですが、どのタイミングで表示すればいいかは考えないといけないですね。

似たようなライブラリに appirater というものがありますが、
* SKStoreReviewController にはまだ対応していない
* Objective-c で書かれている
だったので Swift で書いてみました。

使い方

Cocoapods か Carthage でインストールします。

Cocoapods

pod "SwiftRater"

Carthage

github "takecian/SwiftRater"

AppDelegate の中でセットアップをします。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        SwiftRater.daysUntilPrompt = 7
        SwiftRater.usesUntilPrompt = 10
        SwiftRater.significantUsesUntilPrompt = 3
        SwiftRater.daysBeforeReminding = 1
        SwiftRater.showLaterButton = true
        SwiftRater.debugMode = true
        SwiftRater.appLaunched()

        return true
}

SwiftRater では レーティングのポップアップを表示するための条件を複数指定できます。

Property Description
daysUntilPrompt ポップアップを表示するまでの日数。
usesUntilPrompt ポップアップを表示するまでの起動(使用)回数
significantUsesUntilPrompt ポップアップを表示するまでの重要なアクションの実行回数

例えば、「初回起動から10日経つか、15回起動したらポップアップを表示する」という条件にしたいなら

SwiftRater.daysUntilPrompt = 10
SwiftRater.usesUntilPrompt = 15
SwiftRater.appLaunched()

と設定します。

例えばインスタグラムのような写真投稿アプリの場合で「写真を10枚投稿したらポップアップを出す」という条件にしたいなら、

SwiftRater.significantUsesUntilPrompt = 10
SwiftRater.appLaunched()

と指定し、写真投稿を実装する部分に、SwiftRater.incrementSignificantUsageCount() を追加します。

func uploadPhoto() {
    ** upload photo **

    SwiftRater.incrementSignificantUsageCount()
}

そしてポップアップを表示したい場所にSwiftRater.check()を追加します。

override func viewDidAppear(_ animated: Bool) {
   super.viewDidAppear(animated)
   SwiftRater.check()
}

セットアップの時の指定した条件を満たしていたら(一回だけ)レーティングのポップアップを表示します。

iOS10.3 未満のデバイスへの対応

iOS10.3 未満のデバイスに対しては Alert を表示して、AppStore へ遷移するようになっています。

iOS10.3 未満のデバイスに表示するポップアップにはすぐにはレーティングしない「あとで(Remind later)」も選択できます。「あとで(Remind later)」を選んだユーザーには x 日後に再度ポップアップを表示する(リマインダー)ことができます。この「あとで」の選択肢を表示するかどうか、リマインダーの設定もセットアップ時にできます。

SwiftRater.daysBeforeReminding = 1
SwiftRater.showLaterButton = true

動作確認

開発中に動作確認をしたい場合は、

SwiftRater.debugMode = true

にして実行すると毎回ポップアップが表示されるようになります。(AppStore に提出するときは false にしておかないと毎回ポップアップが表示されてしまうので注意(デフォルト:false))

ユーザーのレーティングを集めることは重要なことなのでこのライブラリを使ってどんどんレーティングを増やしてみるのはいかがでしょうか。

SwiftRater

23
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
13