flinedev/reviewkit
Request reviews only from users with enough recent positive activity and only at appropriate times.
Requirements
- Minimum deployment target iOS 11+, macOS 10.14+
- Swift 5.8+ (Xcode 14.3+)
Usage
- 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):
``Swift 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:
``Swift 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:
``Swift 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:
``Swift @AppStorage("appStarts") var appStarts: Int = 0 ``
And attach this modifier to your apps' root view:
```Swift .onAppear { self.appStarts += 1
if self.appStarts >= 2 { ReviewKit.recordPositiveEventAndRequestReviewIfCriteriaMet() } } ```
That's it – you have configured App Review requests for your app!
Notes
- ReviewKit is using Apple's
SKStoreReviewControllerAPI internally. That API already encapsulates some logic to make sure not to ask users too often. - That logic is turned off in
DEBUGmode, so you might want to setReviewKit.enabledInDebugBuilds = falseonce you've tested that everything works. - There's also a function
requestReviewIfCriteriaMet()that does not record a positive event in case you need that.
Showcase
I extracted this library from my following Indie apps (rate them with 5 stars to support me!):
<table> <tr> <th>App Icon</th> <th>App Name & Description</th> <th>Supported Platforms</th> </tr> <tr> <td> <a href="https://apps.apple.com/app/apple-store/id6476773066?pt=549314&ct=github.com&mt=8"> <img src="https://raw.githubusercontent.com/FlineDev/ReviewKit/main/Images/Apps/TranslateKit.webp" width="64" /> </a> </td> <td> <a href="https://apps.apple.com/app/apple-store/id6476773066?pt=549314&ct=github.com&mt=8"> <strong>TranslateKit: App Localizer</strong> </a> <br /> Simple drag & drop translation of String Catalog files with support for multiple translation services & smart correctness checks. </td> <td>Mac</td> </tr> <tr> <td> <a href="https://apps.apple.com/app/apple-store/id6587583340?pt=549314&ct=github.com&mt=8"> <img src="https://raw.githubusercontent.com/FlineDev/ReviewKit/main/Images/Apps/PleydiaOrganizer.webp" width="64" /> </a> </td> <td> <a href="https://apps.apple.com/app/apple-store/id6587583340?pt=549314&ct=github.com&mt=8"> <strong>Pleydia Organizer: Movie & Series Renamer</strong> </a> <br /> Simple, fast, and smart media management for your Movie, TV Show and Anime collection. </td> <td>Mac</td> </tr> <tr> <td> <a href="https://apps.apple.com/app/apple-store/id6502914189?pt=549314&ct=github.com&mt=8"> <img src="https://raw.githubusercontent.com/FlineDev/ReviewKit/main/Images/Apps/FreemiumKit.webp" width="64" /> </a> </td> <td> <a href="https://apps.apple.com/app/apple-store/id6502914189?pt=549314&ct=github.com&mt=8"> <strong>FreemiumKit: In-App Purchases</strong> </a> <br /> Simple In-App Purchases and Subscriptions for Apple Platforms: Automation, Paywalls, A/B Testing, Live Notifications, PPP, and more. </td> <td>iPhone, iPad, Mac, Vision</td> </tr> <tr> <td> <a href="https://apps.apple.com/app/apple-store/id6480134993?pt=549314&ct=github.com&mt=8"> <img src="https://raw.githubusercontent.com/FlineDev/ReviewKit/main/Images/Apps/FreelanceKit.webp" width="64" /> </a> </td> <td> <a href="https://apps.apple.com/app/apple-store/id6480134993?pt=549314&ct=github.com&mt=8"> <strong>FreelanceKit: Time Tracking</strong> </a> <br /> Simple & affordable time tracking with a native experience for all devices. iCloud sync & CSV export included. </td> <td>iPhone, iPad, Mac, Vision</td> </tr> <tr> <td> <a href="https://apps.apple.com/app/apple-store/id6472669260?pt=549314&ct=github.com&mt=8"> <img src="https://raw.githubusercontent.com/FlineDev/ReviewKit/main/Images/Apps/CrossCraft.webp" width="64" /> </a> </td> <td> <a href="https://apps.apple.com/app/apple-store/id6472669260?pt=549314&ct=github.com&mt=8"> <strong>CrossCraft: Custom Crosswords</strong> </a> <br /> Create themed & personalized crosswords. Solve them yourself or share them to challenge others. </td> <td>iPhone, iPad, Mac, Vision</td> </tr> <tr> <td> <a href="https://apps.apple.com/app/apple-store/id6477829138?pt=549314&ct=github.com&mt=8"> <img src="https://raw.githubusercontent.com/FlineDev/ReviewKit/main/Images/Apps/FocusBeats.webp" width="64" /> </a> </td> <td> <a href="https://apps.apple.com/app/apple-store/id6477829138?pt=549314&ct=github.com&mt=8"> <strong>FocusBeats: Pomodoro + Music</strong> </a> <br /> Deep Focus with proven Pomodoro method & select Apple Music playlists & themes. Automatically pauses music during breaks. </td> <td>iPhone, iPad, Mac, Vision</td> </tr> <tr> <td> <a href="https://apps.apple.com/app/apple-store/id6479207869?pt=549314&ct=github.com&mt=8"> <img src="https://raw.githubusercontent.com/FlineDev/ReviewKit/main/Images/Apps/GuidedGuestMode.webp" width="64" /> </a> </td> <td> <a href="https://apps.apple.com/app/apple-store/id6479207869?pt=549314&ct=github.com&mt=8"> <strong>Guided Guest Mode</strong> </a> <br /> Showcase Apple Vision Pro effortlessly to friends & family. Customizable, easy-to-use guides for everyone! </td> <td>Vision</td> </tr> <tr> <td> <a href="https://apps.apple.com/app/apple-store/id6478062053?pt=549314&ct=github.com&mt=8"> <img src="https://raw.githubusercontent.com/FlineDev/ReviewKit/main/Images/Apps/Posters.webp" width="64" /> </a> </td> <td> <a href="https://apps.apple.com/app/apple-store/id6478062053?pt=549314&ct=github.com&mt=8"> <strong>Posters: Discover Movies at Home</strong> </a> <br /> Auto-updating & interactive posters for your home with trailers, showtimes, and links to streaming services. </td> <td>Vision</td> </tr> </table>
Package Metadata
Repository: flinedev/reviewkit
Default branch: main
README: README.md