Another day, another iOS app forced to remove features because of an unwritten App Store rule. This time it's Panic's excellent Transmit iOS, and the feature in question is the ability to upload files to iCloud Drive.
I'm not writing to debate the merits of the particular rule in question. As with lots of Apple's rules, there are probably good points to be made on both sides. I am, however, interested in promoting just a bit more transparency so that developers have a solid understanding of what they can and can't do.
Specifically: When possible, Apple should publish not just a list of rules, but a list of principles that underlie them. John Siracusa brought this up on the most recent episode of ATP. The worst thing about Apple's recent flailing when it comes to the rules is that the changes seem to come out of the blue. A well-meaning developer, looking at Apple's APIs and other apps that have been approved, could reasonably believe that buttons in a Notification Center widget are permissible. Same goes for uploading files to iCloud Drive.
Some statements of principle would go a long way toward helping developers comply with Apple's ideas. For example, a principle could be something like "Notification Center widgets are intended primarily for display of information, not for interaction." It doesn't cover all possible scenarios, but it does convey important hints about Apple's intentions for a particular technology. I can forgive the company for not having thought out every edge cases, but I have to believe that these types of principles drive a lot of the individual rules. (If not – which seems at least within the realm of possibility – we have a bigger problem.)
These principles don't need to be set in stone. Just like the rules themselves, the principles could change over time. If Apple changes its mind about something, it should update the principles. That way, developers won't need to spend so much time parsing the implications of this or that recent rejection.
As developers, we can't afford to spend time building features that we won't be able to ship. Good iOS and Mac developers want to obey the spirit of the law when it comes to the App Store rules. We want to build features that Apple will allow us to ship, and we want to take advantage of the newest features in the OS. As it stands, the company is making it riskier for developers to do so. Giving a window into the thought process behind enforcement of the rules would be a great start toward fixing that.