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.
At one time, Apple guarded the Guidelines as a trade secret. As of 2013, it continues to make the latest Guidelines available only to members of the iOS developer program. People who just sign up for an Apple ID and become a Registered Apple Developer don't have access to the Guidelines. This poses a problem: a first-time iOS application developer could buy a $650 computer and a $330 device and pay $99 to join the iOS developer program only to discover that his application concepts were guaranteed to be rejected. So before you buy a Mac computer and an iOS device and pay the fee for the iOS developer program, 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.
One leaked version of the Guidelines listed over a dozen things an iOS app can't do:
- Video games with realistic violence
- Russian roulette
- Chat roulette
- Card counting
- Satire of an identifiable organization
- Computer science homework, initially, because of a ban on interpreters. An iOS port of a classic video game was pulled when it was discovered that the virtual Commodore 64 that it ran in could be rebooted into the BASIC prompt, allowing the user to key in programs that Apple had not approved. It took years for Apple to loosen this and allow things like Codea.
- 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 shared
- Video games published by companies now out of business, because that would require "downloading code" from a disk or ROM image, even if the image is lawfully made per 17 USC 117(a)(1)
- Discovery and troubleshooting of wireless local area networks. For example, an application could let the user take notes about a Wi-Fi hotspot that your device discovers and use those notes to contribute to a collaborative database of public hotspots. This can't be done on iOS because no public API allows applications to gather information about access points.
- 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.
- Launcher replacements
- Subscriptions for a period shorter than 30 days, due to In-App Purchasing (IAP) limitations. One iOS fan has reassured me that "rentals" are distinct from "subscriptions", but without access to the latest Guidelines, I cannot verify this claim.
- Using "location-based APIs" such as GPS in an application for a religion's outreach to track coverage of door-to-door preaching in a car group and track follow-up visits, depending on how an Apple application reviewer interprets "dispatch" and "fleet management"
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.
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 complete 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.
- 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.