It’s tough at the top. When you’ve got tens of thousands of developers vying for your acceptance, your every decision is scrutinized and criticized. Such is the case with Apple; if they approve a thousand applications and deny one, that one that got cut off will be the one you hear about.
It looks like Apple might be making moves to loosen up their restrictions, if only ever so slightly. Earlier this week, Apple finally let a live video broadcasting app through the gates, after apps of that genre sat on the review backburner for months. Today, they’ve willingly approved another application that calls upon one of Apple’s private (and generally blacklisted) APIs.
For the sake of those who might not have their programming acronym cheatsheet nearby, API stands for application programming interface. In a nutshell, an API is a set of programming functions provided as part of a piece of software (such as the iPhone OS) to allow you to do certain things (such as access the camera hardware or the GPS) without having to reinvent the wheel. Apple keeps a small chunk of these APIs private, for reasons of security, standards, battery life efficiency, and God knows what else.
The application in question, iSimulate, allows developers to test the multi-touch and accelerometer functions of their applications in the OS X iPhone Simulator – generally, such tests would require the app to be loaded onto the handset. They made use of private API UITouch._touchFlags, to which Apple responded:
Thank you for submitting your update to iSimulate to the App Store. During our review of your application we found it is using a private API, which is in violation of the iPhone Developer Program License Agreement section 3.3.1; “3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.” While your application has not been rejected, it would be appropriate to resolve this issue in your next update.
The non-public API that is included in your application is UITouch._touchFlags.
Please resolve this issue in your next update to iSimulate.
Does this mean that all private APIs are open game now? Of course not. Try to sneak background processing support into your app, and Apple will most likely drop the banhammer in a heartbeat. But until we hear otherwise, we’re taking all of this week’s progress as a sign that someone over in Cupertino finally said “Hey, guys – relax a bit.”