MDB Viewer
I started selling my first app in February 2011, a few weeks after the Mac App Store opened. The App Store made it possible for me, a university student and self-taught programmer, to launch an app in my spare time. Lot's of people complained about the restrictions of the Mac App Store, or about the review process. But me, I couldn't believe how easy it was to become a real software publisher. All I did was upload an app and provide my bank account number to Apple.
Soon, software sales on the Mac App Store became my main source of income. I never had any bad experiences with Apple or the review team. Reviews usually took a week, and there were never any issues. But after reading lots of review horror stories I became a bit uneasy about my dependency on Apple. What if Apple decided to remove my app from the App Store one day? I should have an alternative way of selling my software.
Another problem with the App Store was the lack of customer data. I had absolutely no way of contacting my customers. A seasoned Mac software publisher told me that a significant portion of his revenue stems from updates and cross-promotion. His most effective advertising was a regular update announcement that he emails to previous customers.
So in Spring 2013 I decided to start selling software outside the Mac App Store. I created an account with Fastspring. I added the Aquatic Prime licensing framework to MDB Viewer. I designed my own store, did some test transactions, and after a week or so I could sell licenses outside the Mac App Store. The yellow ‘buy’ button now took you to my own store, but I left the Mac App Store link in place. It turned out that roughly 80% of customers preferred the Mac App Store.
I never really did any promotions. My customer email list never really grew big enough to be effective for marketing. But I felt a bit easier. In the unlikely event that Apple would decide to remove my app from the store, I would still have a second source of income. But overall, it seemed to not be worth the hassle. It would probably be smarter to sell exclusively on the Mac App Store, and set up a Fastspring store only if Apple rejects my app.
PG Commander
Nevertheless, setting up an account with Fastspring proved worthwhile when I launched my second app. PG Commander uses encryption features, and therefore requires filling a lot of forms before it can be sold on the Mac App Store. Rather than dealing with this bureaucracy immediately, I started selling PG Commander directly, outside the Mac App Store. Customers immediately emailed and requested a Mac App Store version. So I got to work and made a Mac App Store version. After a few weeks, I had submitted all the forms and received the necessary permits to sell my app on the Mac App Store. Customers were happy, and most purchased PG Commander on the Mac App Store.
In the mean time, I have started to see the disadvantages of Apple's tighly controlled app store. The biggest problem is the review delay. Review delay is so annoying that there even is a website dedicated to it. In the ideal case, when my apps are approved without any issues, it takes a few days. However, the timing is extremely unpredictable. Sometimes review takes three days, sometimes it takes a week. It's possible to request an ‘expedited review’ for significant bugfixes. I requested an expedited review once, and it took two days just to get a reply for my request (they granted it).
But it gets really annoying when Apple finds an issue with your app. If there is anything wrong with your app, you'll receive an email stating that they rejected your app. Then you can log into the ‘resolution center’, where you're presented with an excerpt from the app review guidelines, and a text field to submit further info. Usually you just need to clarify some details, or upload a slightly modified app. But even if you reply within an hour of the rejection, you will still have to wait a few days for a response. So if the reviewer has two questions, the total review time quickly grows from a few days to several weeks.
Access View, an iPhone app I made a year ago, took more than a month to review because the reviewer didn't understand what it was good for. Funnyslim, an app that I recently made for a client, took more than a month to review because of minor issues with In-App-Purchases.
And now, I'm having similar troubles with PG Commander. A week after I submitted version 1.4, I got the dreaded rejection notice. The reviewer inquired about a sandbox setting, and I immediately replied. A day later the reviewer thanked me, told me they'd get back to me if they need anything else. Since then it has been four days without any status updates.
How should software developers deal with those review delays? The delay doesn't seem to be much of an issue for stable apps, or apps with a limited feature set that aren't updated often. But the delay is really annoying for PG Commander. I'm actively developing it right now. I'm adding lots and lots of improvements. I try to get new features out to customers as quickly as possible. Sometimes it's only a month between feature releases, and I try to release bugfixes within a few days of being reported. While still waiting for the approval of PG Commander 1.4, I've already released 1.4.1 on my website.
With my first app, MDB Viewer, I always tried to release the MAS version at the same time as the direct version. With PG Commander, I decided not to make direct customers wait for the review time. I state this in the FAQ, so customers can choose if they prefer the convenience of the app store, or if they prefer more rapid bugfixes and earlier access to new features. I really wish that this tradeoff wasn't necessary, but I don't want to make everybody wait for Apple's review times.
I don't see an obvious solution. The App Store doesn't seem to be a good fit for a rapid development pace. Maybe the solution is to collect more features into a single release, and release less often. I could move to a semi-annual release cycle, or even annual, and maybe I could even start charging for updates! But this doesn't suit the way I work. I'm an individual developer, I don't have lots of internal testers. Quick iteration on customer feedback is the only competitive advantage I have over more established companies!
Update: Apple ultimately rejected PG Commander 1.4 after a total review time of one month. They considered a sandbox entitlement too broad. I immediately removed the questionable entitlement and uploaded a new version of PG Commander (1.4.2). I accept their decision — better safe than sorry. But I am very disappointed that a simple update review takes such a long time.