Tim Bray on Android and Private APIs

Nice explanation from Tim Bray on Android programming APIs:

The Google-provided SMS app has its own database that it uses to stash away the SMS history, and it sets up its own Content Provider for its own internal use. It turns out that if you read the source code, you can figure out how to reach in and access that Content Provider. Which is probably a bad idea, because it’s part of an application that might not even be there.

I personally think the benefits of an Open Source platform exceed this sort of cost — when someone uses the source to figure out how to do something that really isn’t very smart.

There are several significant differences between Android and iPhone OS application APIs, but the biggest difference is one of policy. Every complex platform has APIs that third-party developers shouldn’t use. Android is like Mac OS X (or Windows, or other non-console-style systems) where developers can choose to use these private APIs, against the vendor’s advice, and take their chances. With the iPhone OS, Apple enforces a ban on their use via the App Store review process. That’s the difference.

Friday, 7 May 2010