no iPhone SDK

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.

9 Responses to “no iPhone SDK”

  1. Ben Says:

    Not-so-respectable business reasons? Give me a break. Apple is busy building an entirely new little embedded platform, onto which they are grafting versions of CoreWhatever, and writing little apps, and drivers, etc, etc, etc. They don’t have time to create a developer platform for this right now– it’s just not a priority. Their priority is getting the device out the door ASAP. The whole appleblogosphere debate over the semantics of “Mac” OS X versus just “OS X” is ridiculous. There’s one Mac OS X, and Apple stole the kernel to deploy on the phone. Why? Because they needed an OS to run their phone and OS X was nearby, handy, and well understood, and if they ported the guts of it to whatever this architecture is, they knew they could start leveraging some the higher-level frameworks they already have and would need. It’s the same reason Microsoft used WinNT/Win32 when they kicked off Xbox seven years ago. It was there and it worked, and they damn sure mentioned up front that it was based on the Windows 2000 kernel, but that didn’t mean (and still doesn’t) that just anyone can write code for it. Right now you can’t get code on Apple’s phone for the same reason you can’t get code on their iPods– not part of the experience they want to impress on people. Eventually you will be able to get code on it, but first they need to get this one out the door so they can start thinking longer-term. Widgets will definitely be the first thing they enable– using Dashcode to build little iPhone compatible widgets. Will we ever be able to ship a PhoneCocoa app onto it? Maybe. Maybe not. But only us whiny indie developers even care right now. The consumers just want the damn coolest phone they’ve ever seen, and Apple wants to get it to them.

  2. martin Says:

    With “not-so-respectable” business reasons I meant thinks like “We want the games market for this device for us alone”, or something like that.

    I agree completly with you. The consumers want a phone that finally works. And apple wants to provide it. That’s the first step and has the highest priority. Everything else (probably) comes later.

  3. Matthias Says:

    Well, this iPhone surely makes for an interesting WWDC…

    Martin, you make some good points in this article and I totally agree with you: first spend time on making a good device, then think about what others can do for it.

    kind regards,
    Matthias

  4. Guillaume Says:

    Another “not-so-respectable” business reason would be that Cingular doesn’t want VoIP or IM apps running on this device using Wi-Fi instead of paying for GSM access.

  5. Dallas Says:

    “The whole appleblogosphere debate over the semantics of “Mac” OS X versus just “OS X” is ridiculous.”

    “Microsoft used WinNT/Win32 when they kicked off Xbox seven years ago. It was there and it worked, and they damn sure mentioned up front that it was based on the Windows 2000 kernel, but that didn’t mean (and still doesn’t) that just anyone can write code for it.”

    The problem is that Jobs explicitly listed Cocoa as an OS X technology that is on the iPhone. Cocoa exists to make it easier for developers to create Mac OS X applications, and by including it as an iPhone feature in the keynote, HEAVILY implies that it will be available to developers. Otherwise, why else even list it? It offers absolutely nothing to the users of the apps. That’s why there’s a debate - it’s the doublespeak that Apple is engaging in. They not only claim that it’s OS X, they make it a point to list all of the APIs and frameworks that are there for the purpose of making it easier for developers to create applications. Then they claim that it is a closed platform, so, in effect, they are saying it’s extremely easy to develop OS X apps for, but only Apple employees (or their partners) will actually be able to.

  6. Pete Wilson Says:

    As for Xbox, on the Xbox 360 XNA Game Studio Express allows for free development of games, though running them on the Xbox isn’t free and deploying them to others isn’t free and is complicated, so far.

    So, anyone can write code for it, and run it for $99/year for personal use (!). Hopefully, they will work to resolve deployment issues.

  7. kiran Says:

    I was going through the pictures of disassembled iphones, some early identification of chips which are used. the following things are worth mentioning.

    (a) its uses a arm chip manufactured by samsung which supports ARM Jazelle which helps in executing java code….but the iphone doesnt seem to support java for now…will it be in by the next rel?

    (b) The Bluetooth chipset and software/firmware can do lot more things than what iphone is presently doing with it. again is something more in the waiting

  8. martin Says:

    Thanks for your comment Kiran.

    I was at the WWDC this year and the fact that they presented the AJAX webapp idea as a sweet solution was very disappointing. The target audience were not we developers but instead the business/stock people.

    From what I’ve read so far about the iPhone it sure can do much more. And I’m pretty sure that a number of good things are happening in the near future.

    Some software parts of the iPhone seem to be unfinished or still a work in progress (basic notes app, no games, …). That’s a good indicator that Apple had simple to much to do to get the thing out on the market.

    Wild guesses follow:
    At Macworld we will see a revised iPhone (2.0) and until than we will also see a number of software updates. Leopard/iWork/iLife will have special iPhone support and at WWDC 08 we will see a first official way to develop apps for the iPhone. What else could they present at WWDC 08? Talking about Leopard for the third time is a bit boring.

    Regarding Java: The major problem of Java for user interfaces is the idea to have an OS independent UI layer. The problem with this is that controls look different on different platforms. Even with SWT there is the problem that user interfaces are more than just the controls. It’s about the UI guidelines a platform defines.
    Eclipse on OS X looks and feels like a Windows app and this will never change.

    The Java mobile edition is even worse in this respect. There would be the need for a special Java mobile edition that supports the iPhone features like Hires display, touch screen interface, integration with other apps (Cal, Addressbook).
    Therefore instead of having an incomplete Java on the iPhone I would prefer a full featured Objective-C API.

    And if one argues for Java Applet support - who still uses Applets?

  9. Jim Witte Says:

    The comment was made about their being no iPod SDK (I assume he means the Classic iPod, which must still use the Pixo OS) for the same reason as the iPhone - they need to get the iPhone out the door, and don’t have time to polish a deveoloper-ready SDK. This I agree with. But the no-iPod-SDK argument as support for this view has one big hole in it - there still is no Pixo SDK, and the iPod has been out - how many years? Now perhaps there was no demand for one (except from the hacker types), so that may be the reason.