Request reviews only from users with enough recent positive activity and only at appropriate times.
Read the Introduction Article to learn how to best use ReviewKit in your app.
- Minimum deployment target iOS 11+, macOS 10.14+
- Swift 5.8+ (Xcode 14.3+)
-
Add ReviewKit to your app using SwiftPM:
https://github.com/FlineDev/ReviewKit.git
-
(Optional) Adjust the criteria by which app reviews are requested on app start (defaults to 3 positive events & expiration after 14 days):
import ReviewKit // ... ReviewKit.criteria = ReviewCriteria(minPositiveEventsWeight: 5, eventsExpireAfterDays: 30)
-
Determine common workflows in your app and when a user completes one of them, call this:
ReviewKit.recordPositiveEventAndRequestReviewIfCriteriaMet()
-
(Optional) Determine other activities that you think are positive experiences for your users. If they are in the middle of workflows, instead of the above call:
ReviewKit.recordPositiveEvent() // optionally, you can pass a custom `weight` parameter, defaults to 1
-
(Optional) Get more reviews from users who tried your app at least once, add this to your app entry point:
@AppStorage("appStarts") var appStarts: Int = 0
And attach this modifier to your apps' root view:
.onAppear { self.appStarts += 1 if self.appStarts >= 2 { ReviewKit.recordPositiveEventAndRequestReviewIfCriteriaMet() } }
That's it – you have configured App Review requests for your app!
- ReviewKit is using Apple's
SKStoreReviewController
API internally. That API already encapsulates some logic to make sure not to ask users too often. - That logic is turned off in
DEBUG
mode, so you might want to setReviewKit.enabledInDebugBuilds = false
once you've tested that everything works. - There's also a function
requestReviewIfCriteriaMet()
that does not record a positive event in case you need that.
I extracted this library from my following Indie apps (rate them with 5 stars to support me!):
App Icon | App Name & Description | Supported Platforms |
---|---|---|
TranslateKit: App Localizer
Simple drag & drop translation of String Catalog files with support for multiple translation services & smart correctness checks. |
Mac | |
Pleydia Organizer: Movie & Series Renamer
Simple, fast, and smart media management for your Movie, TV Show and Anime collection. |
Mac | |
FreemiumKit: In-App Purchases
Simple In-App Purchases and Subscriptions for Apple Platforms: Automation, Paywalls, A/B Testing, Live Notifications, PPP, and more. |
iPhone, iPad, Mac, Vision | |
FreelanceKit: Time Tracking
Simple & affordable time tracking with a native experience for all devices. iCloud sync & CSV export included. |
iPhone, iPad, Mac, Vision | |
CrossCraft: Custom Crosswords
Create themed & personalized crosswords. Solve them yourself or share them to challenge others. |
iPhone, iPad, Mac, Vision | |
FocusBeats: Pomodoro + Music
Deep Focus with proven Pomodoro method & select Apple Music playlists & themes. Automatically pauses music during breaks. |
iPhone, iPad, Mac, Vision | |
Guided Guest Mode
Showcase Apple Vision Pro effortlessly to friends & family. Customizable, easy-to-use guides for everyone! |
Vision | |
Posters: Discover Movies at Home
Auto-updating & interactive posters for your home with trailers, showtimes, and links to streaming services. |
Vision |