It seems to be true that the iPhone is not open for regular developers.
Rentzsch called for filing bugs to create some pressure on Apple. I second that, but I’m pretty sure that we will not see an open API soon.
Well, I’m extremely sorry about that as I would love to develop apps for this device. But I think there are a number of reasons why Apple is doing it like that:
The two faces of Apple
Apple has two faces. The first one is the developer friendly one. The one where they develop the best, open, extensible frameworks. They improve the performance of the OS, improve usability and more… They might also be responsible for developing the UI guidelines. Let’s call them the core team.
The second face of Apple are the departments that develop the cool products that we like so much. They do iPhoto (with non standard RSS extensions), they develop iWeb (which is tight into .Mac), and all the other stuff like iTunes (which is using a ton of non standard UI elements), and more. They are doing the visible products on top of the core technology.
These groups push the core team with new requirements. A lot of the frameworks and technologies that were created in the past came out because there is a concrete need for it. So when everything goes well it’s a symbioses between both groups. A framework cannot advance without the push of innovative products.
The time gap
Providing a good API, framework or a SDK takes time. It shall be flexible enough to be extensible while at the same time it shall be easy to use. A tough job. Asking the core team for an extension in a framework that is needed to do the next innovative product can be cumbersome. A lot of discussion may arise how it should be done, which kind of flexibility is being needed and how the functions shall be called.
Time goes by. Time that is extremely expensive as there a number of competitors out there who might come out with a product, too.
So what should they do? They are doing it by themselves. They are ignoring the (already old) standards to push forward.
iPhone Internals
In case of the iPhone they have put together some very smart people from different product and core teams. They took the best parts of Mac OS X and it’s technologies, rearranged, refactored and disassembled them in order to build up this most innovative product. Only a small number of frameworks will have been ported on the iPhone. Perhaps they ported just small parts of frameworks that are being needed at the moment. Some parts might be a big mess as there was not enough time to do it right.
Should they put a lame, buggy API on top of that? Wouldn’t it be better if they invest that time to further improve the user interface and interaction with the device?
Most of the iPhone users will be pretty happy with the functionality of the build in applications. The competition in the mobile market is huge. Perhaps Apple decides it’s better to invest the time to innovate and bring more cool software and hardware than investing time to be compatible for third party apps. The time frame between iPhone Mac OS X releases will be a lot shorter than that of the regular Mac OS X.
False Expectations
When Steve said that the iPhone is using Mac OS X I screamed out loud. I though about running any piece of Mac OS X software on that device. But the expectation to have a full fledged Mac OS X running on this piece was simply wrong. It borrows a lot from Mac OS X, that’s all.
Games
The iPhone is primary a consumer device. They didn’t talk about games. Games are a very important software category for mobile devices. I assume there will be full fledged games in the iTunes store (as it is now for the iPod).
I think the first available SDK will be for the development of iPhone Widgets. There will be no access to the underlying OS but at least you can develop games with Javascript, HTML and CSS and connect with internet services. You probably will be able to do things comparable to what you can do with Java on other mobile devices.
Conclusio
I’m sad, and a bit disappointed about the miss of the iPhone SDK. And there might be other, not so respectable business reasons, why they are not providing an SDK. But at the end, and as a customer, I think it’s better they invest the time to reinvent the phone than providing an SDK for a lame device.
Let’s hope they see the huge potential of third party apps and start to build a team that is responsible for the core modules of the iPhone. And then we will get an API for an awesome device.