SKStoreReviewController should not be modal

Originator:poppoppop
Number:rdar://30288494 Date Originated:January 31 2017
Status:Open Resolved:
Product:iOS + SDK Product Version:10.3
Classification:Enhancement Reproducible:Always
 
SKStoreReviewController is a welcome addition to StoreKit. It is in everyone's best interests to standardise how reviews are prompted for and the streamlined process means more ratings and reviews should be submitted. As a developer, I'm also glad to see that users have the ability to disable review requests globally, as a way to alleviate tension that can be caused by prompting for reviews.

However I believe the current format has a significant problem since it is modal and by design is blocking the user from doing anything else in the app until they decide to ignore it or go through with the review. As developers we can be careful to try prompt at the most opportune times but by the nature of mobile apps, if the user current has our app on screen then there's an extremely high likelihood that there is a specific task they want to complete.

I think that the current modal design of SKStoreReviewController will lead to a high percentage of dismissals, and to many users deciding to disable the alerts globally.

By contrast, enhanced notifications in iOS provide a fantastic way for users to interact with content without having to switch to another app and without having to immediately interrupt their current task. Notifications inform the user of something important but they don't block interaction with the rest of the screen. The user can complete their task first and then turn their full attention to the notification.

I believe that a similar design, whether based on the same APIs as enhanced notifications or not, could significantly improve the effectiveness of SKStoreReviewController.

- An app calls on SKStoreReviewController requestReview()
- iOS decides based on policy whether it is appropriate to show a request at this time
- If iOS decides to show the request, the interface slides down from the top of the screen like a notification
- User can dismiss the UI by swiping up, or waiting, just as they would a regular notification
- The user can pull it down or tap to reveal a rating UI. Crucially users can complete whatever task they were intending to before interacting with the notification

If SKStoreReviewController used an enhanced notification style interface, I believe it would reduce frustration caused to users caused by modal dialogues. This would lead to fewer users disabling the prompts, and more ratings being submitted to the App Store.


STEPS TO REPRODUCE
Call requestReview() on the new SKStoreReviewController

EXPECTED RESULTS
Ideally: The interface presented is not modal. The user can choose to interact with it immediately or continue with their current task.

ACTUAL RESULTS
The interface is modal and the user has no option but to interact with it before they can complete their current task. 

CONFIGURATION
Any iPhone or iPad

VERSION & BUILD
iOS 10.3 14E5230e

Comments

I double that!

By pedro.remedios at March 8, 2017, 7:09 p.m. (reply...)

Reasonable suggestion

I double that idea. Invading user's workflow with a modal alert can be annoying for many users. Thanks for posting that!


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!