Welcome!

iPhone Authors: Maureen O'Gara, Reuven Cohen, Kevin Benedict, Jennifer Rung, Pat Romanski

Related Topics: iPhone

iPhone: Article

My Take on the iPhone SDK

The contents of the SDK as well as the experiences that occur while using the SDK are confidential

So, to start with, I need to preface this blog post with a notice: The contents of the SDK as well as the experiences that occur while using the SDK are confidential. Yes, I am one of those crazy-weird people who read EULAs and license agreements. When you agree to installing the SDK, you agree to those terms. Anybody posting information about the innards of the SDK is violating the agreement and subject to assault by massive teams of rifle-toting SWAT guys.

So, the opinions and information I post here will be based on information in the public domain, such as Steve Jobs' keynote and information you can find on Apple's website without logging in using your ADC or iPhone Developer credentials.

So, here's what it looks like you can do with the SDK on the iPhone:

  • Full access to low-level BSD sockets. I presume there are higher-level abstractions available, but... think about it, you've got SOCKET access on an iPhone. While you can get sockets on a Windows Mobile phone... what's the point? :)
  • Unix. Just about anything you can do on a trimmed down Unix kernel you can do on your iPhone. That sets off every single geek endorphin in my body.
  • Core Services. This was mentioned, looks to be some layer of services akin to Foundation on Leopard.
  • Quartz. This one requires an obligatory OMFG. Quartz, the single coolest 2d compositional rendering engine on the planet, and its available to developers on the iPhone.
  • OpenGL ES. Spore. Super Monkey Ball. On the iPhone. 'nuff said.
  • SQLite. Full flat-file database library/API right on the phone.
  • Distribution and e-Commerce. 70/30 split, you keep 70% Apple keeps 30%. Apple handles the distro for you and if your app gets approved, it shows up as a possible purchase on every single iPhone in the world.

So, let's run this down again. When developing native applications for the iPhone, you get virtually unlimited access to the Unix subsystem and networking stack (though I've been told there's no VoIP on cell net, only WiFi. Similar, quite reasonable, limitations may also exist). You get to write your applications in Objective-C and use a Cocoa-like framework library. You get access to what is, in my opinion, the most powerful 2D graphics API available - Quartz. You get access to OpenGL on the iPhone for full 3D graphics and animation at what (from the demos) appears to be an incredibly good frame rate. Any app you make that doesn't violate the list of exceptions will be held, distributed, and sold by Apple. You get 70% of the cut. If you release an update to the application, iPhone users will be able to download an update to that application directly from their phones without even having to tether with iTunes!!

When I first heard about the iPhone SDK, I was both excited and a little worried. You see, I've been using the .NET Compact Framework on and off for quite some time, and I did development for PalmOS before that (#(@)#!@# little-endian<->big-endian conversions can bite me!). Quite possibly one of the coolest things about the .NET Compact Framework is that you can create an application and deploy it to any Windows Mobile device. If you create an installer that runs on a Windows PC, it will use ActiveSync and get installed on the associated Windows Mobile device. I was worried that the iPhone SDK would create an experience that was more difficult for developers to get stuff on the phone.

I couldn't have been more wrong, and I've never been happier to have one of my assumptions prove incorrect. Instead of developers building an installer and then figuring out how to host the installer and where to put it and how to charge for it, developers just give the single App file to apple, tell them about the app and how much to charge, and that's that. Better yet, iPhone users don't have to use their PCs to download and install an app and then tether up to install it. Using the App Store (scheduled in June as part of the iPhone OS 2.0 release), iPhone users will be able to browse, buy, download, and install applications all from their iPhone without ever having to tether or involve a PC. That folks, is what a mobile "digital lifestyle" device experience should be like.

I can't wait until June to find out what kinds of amazingly cool stuff people are making for the iPhone and the iPod touch. I will predict, however, that people are going to find some insane things to do with the accelerometers and the Core Location services, as well as OpenGL ES.

More Stories By Kevin Hoffman

Kevin Hoffman, editor-in-chief of SYS-CON's iPhone Developer's Journal, has been programming since he was 10 and has written everything from DOS shareware to n-tier, enterprise web applications in VB, C++, Delphi, and C. Hoffman is coauthor of Professional .NET Framework (Wrox Press) and co-author with Robert Foster of Microsoft SharePoint 2007 Development Unleashed. He authors The .NET Addict's Blog at .NET Developer's Journal.

Comments (2) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Pete 03/13/08 11:03:08 AM EDT

Not letting people comment on their iPhone SDK is rediculous. They puplish this thing to the world and they don't want anybody to talk about the cool inner working of it. That seems crazy to me!

Jim Johnson 03/13/08 10:54:47 AM EDT

Hey Kevin,

Does the iPhone SDK allow developers to SYNCHRONIZE their iPhone applications with desktop applications on the Mac?

For example, one of our favorite things about the Treo is the 3rd-party programs we can purchase to synchronize our desktop Quicken files with our Treo's Pocket Quicken; our desktop memo pad to our Treo's memo pad; our desktop database program to our Treo's memo pad; etc.

Does the iPhone SDK allow any of this type of syncing ability?

Thanks!