Presenting, Appirater

September 7th, 2009

Like most developers, I’m not thrilled with the way the App Store presents my apps. There are several problems, but in particular, I really don’t like the user review system. It’s biased towards bad reviews, and that ends up hurting sales (there are odd exceptions to this). The only time a user is reminded or asked to rate an app is when you delete it, and you probably don’t care for the app if you’re deleting it. In comparison to the unhappy user, the satisfied user rarely takes the time to review your app. Which leaves you with crummy reviews from uninformed users hurting sales of your app.

If Apple would allow developers to respond to reviews, or more easily challenge the validity of a review, this would be no big deal. But I don’t have any hopes of Apple wising up and fixing anything, so I’m left trying to get more positive reviews of my apps to drown out the negatives ones.

The goal of Appirater is to encourage your satisfied user’s to rate your app. To use it, place the Appirater code into your project, and add the following code in your app’s delegate class.

// import the Appirater class
#import “Appirater.h”

@implementationMyAppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// all your app’s startup code
    // …

// call the Appirater class
    [Appirater appLaunched];return YES;


Finally, open up Appirater.h and change the APPIRATER_APP_ID to your apps software id. You can also change the other #defines, for a more customized reminder message and buttons, but the default should suffice for most apps.

Now every time the user launches your app, Appirater will see if they’ve used the app for 30 days and launched it at least 15 times. If they have, they’ll be asked to rate the app, and then be taken to your app’s review page in the App Store. If you release a new version of your app, Appirater will again wait until the new version has been used 15 times for 30 days and then prompt the user again for another review. Optionally, you can adjust the days to wait and the launch number by changing DAYS_UNTIL_PROMPT and LAUNCHES_UNTIL_PROMPT in Appirater.h.

Appirater as used in Prayer Book app


BTW, if you like Appirater, please consider checking out my game, Jabeh or the lite version of it.

UPDATE: Ivan Nikitin has made a MonoTouch port of Appirater.


  1. September 7th, 2009 at 19:08 | #1

    This is wonderful. It looks easy to install and minimally intrusive. I will definitely be using this!

  2. Nick
    September 7th, 2009 at 19:36 | #2

    You might want to re-think the name. When I first read it, I saw App-pirater, not Appi-rater. When mis-read, it sounds like it would be used to pirate apps.

  3. cak
    September 7th, 2009 at 20:18 | #3

    Who cares what it is called, this is for developers, not for end users. If a developer can’t figure what it is, then he shouldn’t get the advantages of using this anyway.

  4. Phil
    September 7th, 2009 at 20:23 | #4


  5. September 7th, 2009 at 20:28 | #5

    great idea! however, i second the renaming suggestion…it looks a lot like app pirater.

  6. Nick
    September 8th, 2009 at 01:22 | #6


    For what it’s worth, I’m a developer and i’d love to use your awesome library. Still not fun to check into svn and explain to everyone when they ask.

  7. September 8th, 2009 at 01:26 | #7

    This seems like a good idea and a good execution, well done!

    The name does sound like “App pirate” a bit. On the other hand, this probably gives it a “stickiness” quality because of the surprise element.

    In any case, good idea, thanks for sharing.

  8. DerekS
    September 8th, 2009 at 06:31 | #8

    The name couldn’t be worse – but the idea and implementation is great. Thanks for sharing this with us!

  9. Lee Armstrong
    September 8th, 2009 at 09:04 | #9

    Doesn’t work for me. Safari opens and then comes up with too many redirects!

  10. September 8th, 2009 at 09:20 | #10

    @Lee Armstrong
    It’s doing that because it needs to be run on the device, and the simulator doesn’t have the App Store on it.

    Try it there and it will redirect you to the review page for the app.

  11. Lee Armstrong
    September 8th, 2009 at 10:55 | #11

    Legend ta!

  12. Derek
    September 9th, 2009 at 23:24 | #12


    I’m getting the “too many redirects” error on my iPod Touch.

  13. September 10th, 2009 at 00:04 | #13

    Are you running it on OS 3.1? I haven’t had a chance to test it there yet.

  14. Derek
    September 10th, 2009 at 06:55 | #14

    No, but I am using the 3.1 SDK to compile and install it on my 3.0 device.

  15. September 10th, 2009 at 07:02 | #15

    Thanks for this Arash, this is very useful.

  16. September 12th, 2009 at 21:15 | #16

    nice, i just implemented something similar in my todo list app.

    since i have a todo list i offered the option to create a new todo to remind the user to rate the app.

    I first saw this in the app “Where To?”, it will be interesting to see how this effects user ratings. I think a big part is how you ask, the request you did is very simple polite and undemanding. good job.

Comments are closed.