App Store Review Guidelines
The App Store Review Guidelines are a document distributed by Apple Inc. to authorized developers of iOS applications that dictates what can and cannot be submitted to the App Store. It completely excludes several categories of application from iPod touch, iPhone, and iPad devices that lack a paid-up developer account. Fans of these iProducts defend Apple's practices, claiming that almost nobody demands the functionality that the Guidelines ban. Even if this is true of each individual item, there are still a lot of people who want one or more items on the list as a whole.
Unlike Microsoft and Google, which have made their App certification requirements for the Windows Store and Google Play Policies and Guidelines available to the public since day one, Apple has for years treated the Guidelines as a trade secret. For the first couple years that the App Store operated, it didn't even share the Guidelines with paying members of the iOS developer program, forcing a lot of guesswork for which the media criticized Apple. In late 2010, Apple started making the Guidelines available to members, but not to the public. Even people who signed up for an Apple ID and become a Registered Apple Developer didn't have access to the Guidelines. This posed a problem: an application developer considering iOS for the first time could pay $99 to join the iOS developer program only to discover that his application concepts were guaranteed to be rejected. So before you spend $997 plus sales tax to buy into this ecosystem, it is strongly recommended that you flesh out at least three ideas for applications in case one or two fall into categories that Apple has entirely rejected from the App Store. But sometime in June 2014, the Guidelines were made available to the public, according to a Bitcoin-related Slashdot submission.
No app for that
One version of the Guidelines leaked in September 2010 listed over a dozen things an iOS app can't do. The vast majority still applied in June 2014.
- Video games with realistic violence
- "15.1 Apps portraying realistic images of people or animals being killed or maimed, shot, stabbed, tortured or injured will be rejected"
- Russian roulette
- "15.5 Apps that include games of Russian roulette will be rejected"
- Chat roulette
- "18.2 Apps that contain user generated content that is frequently pornographic (ex 'Chat Roulette' apps) will be rejected"
- Card counting
- "22.5 Apps that are designed for use as illegal gambling aids, including card counters, will be rejected"
- Satire of an identifiable person or organization
- "15.3 'Enemies' within the context of a game cannot solely target a specific race, culture, a real government or corporation, or any other real entity"
- An app satirizing Tiger Woods was rejected
- Fan-created applications celebrating an organization
- "Quoth Steve", a quote of the day app based on Steve Jobs quotations, was rejected.
- Game makers
- The Guidelines ban apps that "download code in any way or form" or "install or launch executable code", such as a game maker that plays games that another user has created and shared.
- "2.7 Apps that download code in any way or form will be rejected"
- "2.8 Apps that install or launch other executable code will be rejected"
- Video games published by companies now out of business
- Video game publishers often use emulation to rerelease older games on iOS. These emulators are cryptographically locked to run only one game. An emulator not locked to one game would require "downloading code" from a disk or ROM image, even if the image is lawfully made per 17 USC 117(a)(1). In addition, an emulator can't even mention the platform that it emulates if said platform is battery-powered.
- "3.1 Apps with metadata that mentions the name of any other mobile platform will be rejected"
- Launcher replacements
- "10.4 Apps that create alternate desktop/home screen environments or simulate multi-app widget experiences will be rejected"
- WLAN utilities
- You won't find any applications for discovery and troubleshooting of wireless local area networks on iOS. For example, an application could let the user take notes about a Wi-Fi hotspot that a device discovers and use those notes to contribute to a collaborative database of public hotspots. Mozilla, maker of the Firefox web browser, has released an Android app called MozStumbler to map access points, but it can't be ported to iOS because Apple provides no public API for applications to gather information about access points that the device can see. And the iOS version of WiFi-Where requires a jailbreak. Windows Phone reportedly has the same problem.
- "2.5 Apps that use non-public APIs will be rejected"
- Web browsers that implement HTML features that Apple has left out of Safari
- You can't get Firefox on iOS,  nor does WebGL work outside of iAd modules. Uploads using the
<input type="file">element don't work either except for pictures and videos.
- Book reading programs that use the volume buttons to change pages
- "10.5 Apps that alter the functions of standard switches, such as the Volume Up/Down and Ring/Silent switches, will be rejected"
- Use of e-mail address as account identifier
- A lot of existing web applications use an e-mail address to identify a user account. For example, Amazon and Dropbox use an e-mail address as an account identifier. An iOS app that ties into one of these might have to choose some substitute user identifier other than an e-mail address.
- "17.2 Apps that require users to share personal information, such as email address and date of birth, in order to function will be rejected"
Even if an iProduct is technically superior in some way to a particular Android product, that's no help if somebody depends on a particular application, and Apple has made the business decision to allow that application to remain exclusive to Android. For some people who value simplicity and cannot anticipate needing to do any of these tasks in the next six years, an iDevice may be the right choice. But for the rest of us, Droid does what iDon't. And who knows? Your needs might soon grow to encompass one of these.
Disproof of Turing completeness
The term "general-purpose computer" is often defined in terms of Turing completeness, or whether a machine can act as a universal Turing machine. (Because a Turing machine has unbounded memory, real-world "Turing completeness" is slightly weaker, implying equivalence to a Turing machine with bounded memory.) The following is a proof that the iPod touch, iPhone, and iPad are not Turing complete out of the box.
Consider a computer program with the following pseudocode, titled "Pick-a-Winner":
- Let Players be a queue of two to six distinct symbols, one of which is "Vladimir".
- Let Dice be a source of random natural numbers uniformly distributed from the list [1, 2, 3, 4, 5, 6].
- Repeat the following steps until the length of Players is 1.
- Let current be one element popped from Players.
- Let roll be one element popped from Dice.
- If roll is not 1, push current to the end of Players.
- If the remaining symbol in Players is "Vladimir", accept and halt; otherwise, reject and halt.
Pick-a-Winner could be trivially implemented on a Turing machine, with Players encoded at early positions on the tape and the remainder filled with enough Dice to have at least five 1 values. (The length of Dice will form a negative binomial distribution, the same distribution whose long tail doomed The Little Match Girl.)
However, the process of Pick-a-Winner is equivalent to Russian roulette. As stated above, Apple Inc. refuses to digitally sign a program implementing the rules of Russian roulette. But any universal Turing machine can run Pick-a-Winner. Therefore, a machine that refuses to execute a program that Apple has not signed cannot be Turing complete because Pick-a-Winner is excluded from programs that it can run. This makes an iPod touch, iPhone, or iPad without a developer license or jailbreak not a general-purpose computer, QED.
- Nellie Bowles. "Quoth Steve Jobs, but Never in the App Store". Re/code, 2014-03-16. Accessed 2014-03-29.
- Jacqui Cheng. "Firefox is out of the iOS game until Apple changes its ways". Ars Technica, 2013-03-11. Accessed 2013-03-11.
- "When will WebGL be supported on iOS Mobile Safari?" Apple Support Communities, 2011-12-29.