Traversing the iPhone app application process is not as arduous as it once was, but there are a few developers who still experience hiccups from time to time. Most recently, Seattle iPhone developer Ram Arumugam emailed Apple CEO Steve Jobs after his iPad app “Economy for iPad” was rejected for using private APIs. Arumugam’s email asked Apple to reconsider their position, but instead of receiving an email reply back, Arumugam was shocked to actually get a phone call from Jobs himself.
“I was very surprised,” Arumugam said, “I was not even sure whether he would have time to read the e-mail.” During their brief conversation, Jobs reiterated why Arumugam’s app, which tracks economic statistics across states, was rejected. Specifically, the Economy for iPad app employed private APIs to skirt around a bug which would sometimes result in the on-screen keyboard remaining on the screen long after it was no longer needed. To remedy the problem, private APIs were called in to duty.
Arumugam writes on his blog:
It was (late night) 3:30am when I realized that the zombie keypad issue was a bug in the iPad SDK and not in my code. At that point, I should have probably called it a day, but didn’t. As I investigated the bug further, I found that the (dismissKeyboard) private API took down the keyboard perfectly. With exception handlers and checks for respondsToSelector, the code seemed reasonably safe (though – in general – I agree with Apple’s reasoning that private APIs shouldn’t be used).
In any event, Jobs soon called Arumugam. “Ram, this is Steve.” Oh yes, that Steve. After a little back and forth, Arumugam decided to implement an alternative UI that eliminated the need for the private API call. Since being accepted into the iTunes App Store, Economy for iPad is now the top selling Financial app in iTunes.