Apple and the app store: Are they doing it wrong?

Rotten AppleRecently I read an essay from Paul Graham titled “Apple’s Mistake” (if you’ve never read any of Paul Graham’s essays, I strongly suggest you check his web page out, http://www.paulgraham.com) which describes why the app store is not designed with the developer in mind, and that Apple is selling the apps a lot like how they sell their music and movies.   Paul indicates that if this problem isn’t fixed, developers will flock to other devices and companies once the market for them becomes bigger.

I’ve personally never submitted an app to the App store.  I have, however been involved in an App project which was rejected by Apple.  We submitted the app somewhere in the middle of October and did not get the app on the store until November 19th.  As far as I have been told, Apple rejected the app because it was sending too much data through the network, and wouldn’t disclose how much an app was allowed.

I am interested in mobile development because it’s becoming a major player in the communication and technology world.  If it were to take me a month to get an app released, it would make me think twice about developing it.

Apple claims that they have a review process for security purposes.  If done well, it benefits us, the developers, because if our apps are given the ‘seal of approval’ we will not have to sell security to our clients.

Here are four changes Apple needs to do in order to fix their process:

1. Provide a way to test the app against the approval process to the developers. Generating automated test cases and unit tests for applications should be done for ANY application you plan on releasing, but Apple should provide an ability to test your application based on their approval guidelines.  This way, a developer can be more confident in their submission

2. Rules and guidelines need to be more visible to the developer world. Giving developer’s access to all of the guidelines Apple uses to determine whether or not an app is accepted may result in them designing their apps just to avoid the apple hammer.  This aside, visibility enables developers to design with 100% compliance to what Apple’s needs are.

3. Developers should have more information about why their app was rejected and be able to challenge the decision. There needs to be a better process with facilitating rejections.  In the case of the app I was involved with, simply stating that we are sending too much data and not disclosing how much you are allowed to send is a terrible experience.  This means that our developers had to go back, find what was taking up most of the bandwidth, design it so it wouldn’t use as much, and hope it is enough.  This… is simply ridiculous.  Imagine it took an hour each time you compiled, found a bug and fixed it?  You’d quit your job in less than a week!

I also believe a developer should be allowed to contest a decision to reject an app. Suppose in our case, we had good reasons for sending so much data?  What if it truly enhanced the usability of the iPhone?  What if the data was being sent for a good cause?  It should at least be up for discussion.

4. Allow a private store area where you can release apps to a subset of users (perhaps by company) and loosen (or get rid of altogether) the approval process. It’s going to become more and more important for companies to come up with custom applications that only they will use in their own business.  Suppose a company had a large team of technicians and wanted to provide a logging program for their iPhone.  How would they be able to do that easily?  I know you can provision separate phones for an application, but that seems clumsy.

I love Apple, and I am hugely impressed with the amount of professional looking apps are being released in the store these days.  However, other phones are going to become real competitors.  If Apple doesn’t want to lose their user-base, they need to keep the app store thriving.  In order to keep the app store thriving, they need to make their developers happy.