Introducing ReviewKit: Improve your App Store Rating with Ease

ReviewKit: Get app reviews from satisfied users at the right time. Say goodbye to intrusive prompts and optimize your app review process.

Introducing ReviewKit: Improve your App Store Rating with Ease
Photo by Towfiqu barbhuiya / Unsplash

As an app developer, you know how important user reviews are for the success and credibility of your application. Positive reviews not only attract more users but also contribute to higher rankings in the App Store. However, asking for reviews at the wrong time or from users who haven't had a positive experience can lead to frustration and negative feedback. That's where ReviewKit comes in – a powerful open-source tool that helps you request app reviews only from users who have had recent positive activity and at appropriate times.

The Problem and Solution

Traditionally, app developers have relied on simple prompts to ask users for reviews, often presented immediately after opening the app or at random intervals. This approach can be intrusive and irritating, resulting in users leaving negative reviews or even uninstalling the app.

I developed a fairly complex logic to determine when to ask for reviews in my first app, RemafoX. But for my most recent app (Twoot it!) I broke down what's really important and further simplified the logic. ReviewKit is the result of this process.

ReviewKit solves this problem by intelligently determining when to request app reviews based on the user's recent positive activity. It ensures that only users who have had a satisfactory experience with your app and have engaged in certain activities are prompted to leave a review. By doing so, ReviewKit increases the likelihood of receiving positive reviews while minimizing user annoyance.

Of course, each app is different, so you need to specify what a "positive activity" is for your app. But ReviewKit takes care of the rest and is customizable, too!

Setting Up ReviewKit

Getting started with ReviewKit is easy. Follow the instructions below to integrate it into your iOS or macOS app – your deployment target can be as old as iOS 11 or macOS 10.14, which should cover even most corporate apps:

Step 1: Add ReviewKit to Your App

To add ReviewKit to your project, use Swift Package Manager (SPM). In Xcode, navigate to your project and go to the "Swift Packages" tab. Click the "+" button and enter the ReviewKit repository URL:

Lastly, make sure to select your app target to link ReviewKit to.

Step 2: Adjust Review Criteria (Optional)

ReviewKit provides default criteria for requesting app reviews: It requires a minimum of 3 positive events within the last 14 days. If you want to customize these, you can adjust the criteria using ReviewCriteria like so:

ReviewKit.criteria = ReviewCriteria(
   minPositiveEventsWeight: 5, 
   eventsExpireAfterDays: 30

In the example above, the criteria have been modified to request reviews only when users have a minimum of 5 positive events, and the events expire after 30 days. That's when you use the default weight of 1 for the calls down below.

Step 3: Record Positive Events & Request a Review

To trigger the app review request when users complete specific workflows or activities, you need to record positive events using ReviewKit. Call the following method whenever a user completes one of these activities:


This method will automatically determine if the user meets the criteria for requesting an app review based on their recent positive activity. If the criteria are met, the review prompt will be displayed.

Step 4: Record Other Positive Activities (Optional)

Apart from the primary workflows, it is essential to take into account additional activities that signify positive user experiences. However, requesting reviews during these moments could interrupt users who are already engaged in a workflow, potentially leading to annoyance and decreased likelihood of leaving a review or even impacting their rating negatively. To monitor and capture these events, you can utilize the recordPositiveEvent() function:

// Optionally, you can pass a custom `weight` parameter (defaults to 1)

Note that both of the above methods optionally accept a weight: Int parameter, which you can use to fine-tune the criteria for requesting app reviews. For example, if your app had different levels of engagement, you could specify a weight of 3 for your highest-level activity and set the minPositiveEventsWeight to something like 10. The default weight for positive events is 1.

Want to see your ad here? Contact me at to get in touch.

Example Usage in an iOS Application

To provide a better understanding, let's consider a sample iOS application and demonstrate how ReviewKit can be used effectively. Suppose you have a social media app where users can post and like others' posts. Here's an example:

import ReviewKit

func sendPost() {
  // ...
  // Record a positive event after sending a post
  ReviewKit.recordPositiveEventAndRequestReviewIfCriteriaMet(weight: 3)

func handlePostLike() {
  // ...
  // Record a positive event for liking a post unintrusively

In the example above, the sendPost() and handlePostLike() methods demonstrate how to record positive events for different activities. We call recordPositiveEventAndRequestReviewIfCriteriaMet() after a post was sent as this signifies the end of a workflow the user did in our app, which is a good time to request a review.

When users like a post, they're still in the middle of the use case of consuming content, which is still a positive activity that we should record, but it could be intrusive to ask for a review at this time, so we just call recordPositiveEvent().

Sample usage of ReviewKit in the Twoot it! app.


ReviewKit offers a simple yet effective solution for asking users to review your app. By intelligently determining when to request app reviews based on recent positive activity, ReviewKit increases the chances of receiving positive reviews and helps your app grow. With easy integration and customizable criteria, ReviewKit is a valuable tool for any iOS developer or team.

Enjoyed this article? Check out TranslateKit!
A drag & drop translator for String Catalog files – it's really easy.
Get it now to machine-translate your app to up to 150 languages!
Want to Connect?
Follow me on 🐦 Twitter (X), on 🧵 Threads, and 🦣 Mastodon.