An argument for longer app store approval wait times

If you aren’t already familiar with the process of submitting to the Apple iOS App Store, lately you have to wait an average of 11 days until your app is approved. That assumes things go well, however, and if they don’t you could end up getting rejected, resubmitting (or appealing) and spending a month or more until your app actually gets listed, if ever.

The first time I found about this I was pretty annoyed, and I imagine that many of you felt the same. This can be ever more frustrating if you know that the Android store typically takes a day (at most) for the entire process, or so I’ve heard.

After going through this process a few times, I’ve finally come to the conclusion this large wait time actually benefits both the developer and the app store, for several reasons.

First and foremost, I feel that developers who know in advance they’ll have to wait for over a week will typically strive for higher quality than with a quick review process. I’ve seen this in my (very subjective) assessment of iOS vs Android apps. Specifically, developers are more likely to test their app more thoroughly because they know any bugs they find later, no matter how small, will take quite some time to get in the hands of their customers (though I’ve heard in rare cases Apple will make exceptions to fast-track critical issues). Also, since the iOS App Store has an image of being ‘strict’ in terms of what it permits, this will make developers think twice about much of their code, and as a result use APIs more properly. [I’ll leave the matter of whether the Apple app store is actually ‘strict’ for another article]

Another way to look at it is the professionalism, and sense of really releasing a product that this long delay gives to the developer(s) involved. There’s a feeling of satisfaction that you did something significant, and maybe even had a bit of luck on your side.

Although devs have the option to keep working on their app or game while waiting for app store approval, I generally don’t recommend this. The reason is that if you get rejected, you’ll probably want to submit the same exact version you submitted previously, with one or two surgical fixes, as opposed to a version with a bunch of new things that might fail the approval process in a different way, complicating things. If you are using source control this shouldn’t be hard in theory, but merging your changes can still be an annoyance.

I find this week or two period of respite really good for my mental state – it allows me to take a break from all of the focused development I’ve been doing and clear my head. This is a good time to put on your marketing hat and begin final planning of where, how, and when you will advertise your app or game once it is released. Hopefully you submitted it with the option to wait for manual release to the store after the approval process is complete, since this allows you some freedom for when you release. This is important if you are aiming to release on a certain day of the week, for example.

Other options for this break time are to begin planning what your next set of features will be, or even what your next app or game will be if you are ready to make that jump.

With all the money Apple has, it shouldn’t be too difficult to hire a bunch more people and keep the approval process to a maximum of a day or two. But I believe  they are purposefully keeping it roughly a week (with some variation) because of these benefits.

The only real disadvantage I can see to the long app store approval (besides frustration and uncertainty) is that if you working with a customer you might have to wait longer until you get paid. For one-off projects this can be troublesome, but anyone trying to make a business dealing with apps should consider pipelining several jobs at once, so that while they are waiting for approval for one job they can be progressing on another.

On a final note, I have heard many reports of Apple being inconsistent or illogical with some of the reasons they deny apps from the store. I think some of this is because consistently training everyone is difficult, but also for budgetary reasons because being extremely strict for all apps would take even more time. I see some parallel to the IRS’s audit process, whereby a few people get a stricter review and as a result the average level of adherence to the rules increases.

iOS development: why did my downloads plummet after only a few days in the store?

For those of you dabbling in iOS apps, you may have noticed a phenomenon whereby your app’s downloads drop significantly after a few days in the app store. You might have been getting ~30 downloads a day but now it’s only 1 or two. Not only have I experienced this myself but I’ve heard the story from a few fellow developers. What gives?

I don’t have any official information on how the Apple app store works, but I’m pretty sure I have a good idea what is happening here.

If you think about how people find apps, the number one way is surely through the app store itself – browsing the latest recommended games, new games, or in some other specific category or list.

None of these categories is infinite, and even if they were, mostly people would just look at the first few on the list. So the question is where and how Apple decides to showcase new games in their store.

They could give everyone a limited time (say one week), and then remove them – but that isn’t optimal since after all Apple’s goal is to get the total number of app downloads. This is obvious for paid apps since they get a cut, but even for free apps, the more people download games on their devices the bigger their market share is. And free games always have the chance to evolve into games with in-app purchases later.

Given this motivation, what they are likely doing is giving all new applications a chance, which means listing them on some relatively high-visibility category. I’m not sure if that is the “new apps” one or something else, but the exact place doesn’t matter. They do this for approximately a week, and then based on the number of downloads, they decide to either keep that app on the list, remove it completely, or maybe even upgrade it to a list with even higher visibility.

So if you happened to get a hundred downloads in the first week, you might be wishing to at least retain that level of popularity, but Apple determines this is not nearly good enough and declares your time in the limelight is over. You could beg to Apple and say “But, if I only had a few more weeks I would gather so much more popularity!”, to which they would respond “Sorry, you had your chance.”

With a huge number of new apps coming in each week, I’d say they are forced into this sort of strategy.

There are some unanswered questions here. For example, do they ever give you another chance on a high-visibility page? What happens for updates?

I don’t know all the details, but based on my recent experience they don’t seem to be giving another full chance when there is an app update – thought it could depend on the extent of the update.

What this all translates to is that to really have your best chances for a popular app, polish the heck out of it before putting it on the app store, since your first week may be your best chance to show Apple your app really has what it takes. Even without Apple’s help, you could advertise your game various places and eventually build up a big user base, but that’s significantly more work and takes much more time.

iOS development: Don’t unknowingly limit your users

Recently I asked a friend to try Play The Field, after which he replied he could not because the game required iOS 8.3, but his iPhone was currently still at 8.1. I hadn’t realized the app was set such that “Deployment Target” (in the XCode project’s General settings under “Deployment Info”) was set to 8.3, which means that 8.3 is the minimum OS required to install the game. This was very valuable information, and in the next release I’ll change this to 8.0.

Just be careful because your program may be using Apple APIs which aren’t supported by certain older OS versions. The father back you go the more you have to worry about writing code to dynamically detect the version and use alternate APIs.

If you are new to mobile development you might take the stance of “Why don’t the users just upgrade to the latest OS?”, but that naive stance won’t help you get any more downloads. There are several reasons people might avoid an upgrade: risk avoidance of new bugs and security problems, inability to upgrade on a jailbroken device, and fear of bricking their device. You may think having a device destroyed by an upgrade is impossible, but I have had a MacBook Pro totally messed by a failed OS upgrade before.

I doubt that once I remove this restriction the downloads will come pouring in, but it’s literally a single click to fix (excluding the whole process of uploading a new version to the app store, which I would have to do eventually anyway). Creating an iPhone version was significantly more difficult, but had the same end result – reducing a reason that user’s couldn’t download the app.