Apple can come under a lot of criticism for their seemingly arbitrary practices when it comes to approving an app for the Apple app store. They’ve provided little feedback to developers on occasion, prompting the lonely blog posts and begging for help in forums. However, if you step back and look at it, Apple tends to approve a lot of apps that, frankly, are just plain wacky. Remember the farting app? How about the baby shaking app?
Some of the criticism could be considered well founded, depending on your perspective. Apple is charging a lot of money for applications / services that let users subscribe to data via the app. In fact, the rates are so high many of the music streaming apps might become unavailable on the Apple products. Apple, in traditional apple fashion, is getting aggressive about monetization. It’s their market, their product, and their technology. Many of the critics of Apple’s subscription tariffs seem to forget this. Apple never said you could play for free.
Apple, however, does some things exceedingly well and the advocates of “openness” should take heed. Take the app store approval process as a microcosm for everything that is right and wrong in this debate. Apple scans the code of submitted apps to make sure they don’t violate the terms of service (TOS). Apple doesn’t allow certain things to happen on their platforms. It’s not perfect, but its better than having zero oversight into the process.
There are some things that will get your app rejected from by Apple. If you notice, most of these accomplish the goals of a) protecting the user and b) protecting the user experience. Some would add c) protect Apple’s revenue stream, but that’s a different debate.
Apple will reject your app if (this is not a definitive list):
You write crappy code.
As in, your app crashes or doesn’t do what it’s supposed to do.
+1 for the User (Stability)
–0 for the developer (meh, your app shouldn’t crash)
Your app overlaps with what Apple is already doing.
As in, the iPhone is a music player; so that’s not an area you can play in.
+0 for the User (The Apple features work well, so we’ll never know)
–1 for the developer (Limits your options a bit)
Your app changes how the phone works.
A great example of this would be syncing iTunes over the network. It doesn’t matter if the user wants it, that is not how Apple wants it.
+1 for the User (Consistency)
–1 for the developer (No opportunity to improve the experience)
Your app runs interpreted code.
Two words, Adobe Flash. Another word, malware.
+1 for the User (Less Security risks, better performance and thus a better experience)
–1 for the Developer (Learn Objective C or use a tool that compiles to native code).
Your app uses too much bandwidth.
Network intensive apps will get rejected. It’s a phone, not a web server!
+1 for the user (Helps prevent the $1000 phone bill!)
–0 for the developer (seriously. it’s still not a web server)
Its things like informing the user that there may be fees if your app is running because it uses data, or letting the user swipe between screens like the native OS that your app should strive for.
Don’t re-invent the UI wheel on the iPhone, because Apple doesn’t want you to, and for good reason. Once the user learns how to interact with their iPhone, all the apps can be interacted with the same way. Thus, the iPhone and iPad have a consistently great user experience.
So, for all the criticism heaped at Apple for the way they manage the apps on their platform, their actions directly benefit the end user. This ultimately helps Apple’s bottom line. This isn’t bad a bad thing; they created the market so it is theirs to benefit from as they see fit. Their pro-user experience is demonstrably profitable, which raises the bar in the industry. Proponents of open platforms and systems (philosophies without which the Internet would not be what it is today) are usually some of the most vocal. To them I say, Apple never promised a fair playing field. It’s all about the user experience, so either you will compete or you won’t.
In contrast, almost anyone can submit an app to Google’s app store. In the past few weeks, someone download several popular free games and modified them. In the new, modified versions they put code that would to hijack your phone and download more software off the Internet and execute it. Basically, the new versions had a virus in them. They took the new modified versions and uploaded them to the Android market. Over 250,000 people downloaded the Trojan applications before Google pulled them off the market. Interestingly, one of the developers of one of the original apps had been complaining to Google that his software had been pirated for weeks and Google took no action. It seems it wasn’t until their Android operating system’s reputation was threatened that they took action.
This would not have happened in Apple’s app store. Which is why it is a Google’s Android marketplace is inferior for both the end user and the developer right now.
In the end, Apple never promised you an open rose garden, but they are delivering a consistent and reasonably secure one. Google, on the other hand, is giving you an open bazaar. They aren’t, however, providing security for anyone but themselves, it seems.