Betteridge and Davis are once again right.
There has been an article floating around the internet this morning titled How Apple Cheats. The focus on the article is centered around Apple using UIPopoverViewController in their own iPhone apps, namely iBooks, iTunesU, Safari, and Maps. Mark Sands the article’s author makes the case that Apple is bogarting these APIs so that their own in house apps can have a leg up on third party competitors.
The basic argument is true, if anyone who isn’t Apple uses a UIPopoverViewController in an iPhone app they will find their app being rejected. However Mark overlooks the most basic principles of API development, once it’s public it stays public. Apple needs to maintain and support any methods that it makes available for third party developers through countless years of future updates. Apple needs to throughly test and debug each new API call before releasing them to third party developers, failing to do so results in deprecated code and broken apps.
UIPopoverViewController isn’t some magical API that cannot be easily (relatively) recreated like Siri Voice Recognition. Apple holding it back from third party developers isn’t sinister and it brings them no marked competitive advantage. The only reason it remains private is because they have not had the time to finalize it for public consumption. It is not entirely difficult to find examples of Apple not playing nice, however this blown out of proportion private API call in four Apple apps isn’t one of them.