App Ratings and Reviews for iOS with Swift

Marcos Joshoa
5 min readJul 8, 2021

To request users to review your iOS app, all you need to do is add a line of code.

Shows Tv App Review Request
Shows Tv App Review Request

That’s right! As you can see at Apple’s documentation: Requesting App Store Reviews, this it’s done by calling one method:

SKStoreReviewController.requestReview()

The problem is that you shouldn’t just call this function whatever or whenever you want. That’s why we're going to understand the reason for asking users to rating and review our apps and at the end you'll see one of the ways to implement that in your project.

Why is it important to ask users to rate your app?

Well, we could go through many reasons to answer this question but here are three of them:

  1. High average ratings result in good positions at search results and top chart rankings.
  2. The overall visibility of apps with low ratings can be damaged and more likely to do not hold top positions on stores listings.
  3. About 90% of users check app rating before to decide if they will download it or not.

Of those 90% users, 79% consider the reviews an essential part when they are evaluating an application and 4 of every 10 people consider the reviews same or even more important as the recommendations from friends.

So it’s really important to ask users to rate and review your app but you shouldn’t beg for it or it can backfire. Firing at users with pop-ups without caring about the right time or the right frequency of requests for reviews can become quite annoying for them and resulting in poor ratings.

Rules for Requesting Ratings and Reviews

To avoid getting a poor rate just for asking at the wrong place and time think about the following points.

If your app has no quality or your users do not understand the value of your product they will going to give low ratings, not matter if you asking “right”. So be sure that you have a great application in your hands.

The main rules for requesting ratings follow below:

  • Do not interrupt the user experience, especially when they’re performing a time-sensitive or stressful task.
  • Do not ask for user to rate right after a crash.
  • Ask for review only when your user it’s probably engaged and happy with your app.
  • Allow at least a week or two between rating requests and only prompt again after the user has demonstrated additional engagement with your app.
  • Choose break times on the user’s experience to ask for reviews.

It’s been said that one of the reasons for following these rules is that you don’t want to annoy your users and negatively influence their opinion of your app. However, there is another motivation for this caution: Apple’s system automatically limits the prompt display to three occurrences per app in a 365-day period. Therefore, you really need to be precise when requesting user ratings to ensure good rating.

Integrated rating requests

The problem with using pop-ups as a method to request user’s ratings is that even choosing carefully the right breaking moments it will be inevitably interrupting his experience using the app. As a different approach, there is integrated rating which is a method of asking for the rating more integrally to the user experience.

Integrated rating requests example
Integrated rating requests example

Where you going to put an integrated rating depends on your application and it is your decision to make but a good example is to place in the middle of a list on the main screen. In any case, this method should dramatically reduce the annoyance factor, while increasing interaction.

While using integrated rating requests do not beg for reviews but ask for your user if he is enjoying the app and conduce him to give a good rate or leave a feedback about what he is not happy with. See the following example:

Integrated rating requests steps
Integrated rating requests steps

Now that you know more about why App Ratings and Reviews are important, and different methods of request it for your application let’s see a bit of code.

Implementing App Review in your App

As we saw at the beginning of this article we can present the Review Request with one line of code.

Add some delay after call the review request function for user’s better experience. So the method would be like this:

But we also have to remember that before call this method we should verify if is the right moment for asking to user’s rating. For that purpose create a new method that encapsulate the function presentReviewRequest() and create a computed variable shouldRequestReview which will be responsible for implement the rules for requesting or not user's review.

The method should be something like this:

Another reason for create a good and solid business rule for requesting user's rating is that in production the action triggered after calling this method it is based on OS decision to show or not show rating view called by SKStoreReviewController.requestReview() (In simulator you will be able to see the feedback view every time).

To get around this situation and to be possible use integrated rating requests at your project create the function reviewOnAppStore() and change the method askForReview() to call this function when required.

Your code it's supposed to be like the following example:

As result you can now use the method askForReview() in all situations that require asking for user's ratings and reviews and choose between present as a pop-up or redirect to App Store.

You can see a complete implementation in ShowsTv open source app:

--

--

Marcos Joshoa

I’m B.Sc. in Computer Science and Software Engineer at Afya. Wishing learn as much as possible to do something good.