John Gruber over at DaringFireball has an interesting post discussing the use of public vs. private API function calls in regards to iPhone development. In it, he chastises Jailbreaking guru Erica Sadun for taking what he deems to be a Laissez-faire attitude/approach when writing about and informing others about the risks developers might encounter when using non-public API calls.
A few days later Sadun wrote another piece for Infinite Loop, “Dumping the iPhone 2.2 Frameworks”, with instructions showing how to extract Objective-C header files listing many of the private APIs in the iPhone SDK. She published these header files on her personal web site.
Her header-dumping post does contain a cursory warning that the use of these APIs violates the SDK agreement, and that software that uses such APIs is subject to break under future iPhone OS releases, but there’s an implicit “Go ahead and use them in your own apps if you want to and it’ll probably work out just fine” attitude that pervades. Why else publish such a piece if not to encourage the use of private APIs? And why not a single word encouraging developers to file Radar bugs requesting that desired private methods be made public in the future?
But why does Gruber care?
Simple. He wants a safe and consistent iPhone experience without the fear that a new software update might cripple his favorite iPhone apps.
The more widespread the use of private iPhone APIs becomes, the more likely it is that the iPhone will become the sort of platform where users resist installing OS updates, on the grounds that previous OS updates “broke” third-party applications they had installed.
Seems fair enough to me. It will be interesting to see if Sadun responds.
Check out the full article over here. It’s definitely worth a read.