iPhone SDK

The iPhone SDK has finally arrived. Although the community has figured out how to put together apps in some very awkward ways, there's a real environment now. Not just real frameworks, but profiling tools, drag-and-drop UI creation, remote debugging, and a simulator. And normal people can run the apps.

iPhone AppStore


If you haven't watched the iPhone SDK event video, you should probably check it out. It's not a visual press release. There are some amazing demos in there that stretched my imagination of what's possible. The most interesting point, by the way, is that most of the demos are by third parties — many of which have never written Mac software before.

The Basics

1. The iPhone SDK itself is free. You just need to create an account. The formal iPhone developer program is $99. Enterprise customers that want to distribute apps on their own terms can join a different program for $299.

2. iPhone apps are written in Objective-C using Cocoa Touch — a Multi-Touch variant of the Cocoa framework. The development environment is Xcode and Interface Builder on Mac OS X.

3. Distribution is handled by Apple. Developers set the price of the app, including free. Developers receive 70% of the revenue, but don't have to handle hosting, credit card processing, and so on. If the app is free, neither the developer nor the user pay anything.

4. The version of the SDK which is available now is a pre-release version. The final version will be available in late June, alongside an OS update to iPhone itself. Until that time, the SDK is under NDA and the apps cannot be distributed to the general public.

5. All of the above applies to the iPod Touch as well.

iPhone OS Layers

According to the introduction video, the iPhone OS consists of four primary layers:

A. Core OS: Essentially, the kernel environment and low-level APIs. The kernel is the same as the one from the "desktop" Mac OS X. There's also the library system, BSD networking, sockets, security, power management, KeyChain, certificates, the file system, and Bonjour.

B. Core Services: These are the general APIs that don't necessarily apply to user interface interaction. Collections, AddressBook, higher-level networking, higher-level file access, Core Location, Net Services, threading, preferences, URL utilities, and SQLite.

C. Media: Video, Audio and Images. Core Audio, OpenAL, audio playback/mixing/recording, bitmap and PDF support, Quartz 2D, Core Animation, and OpenGL ES. A lot of this is, of course, is hardware accelerated.

D. Cocoa Touch: High-level Multi-Touch event support, stock Multi-Touch controls, accelerometer support, view hierarchies, localization, alerts, WebView, People Picker, Image Picker and Camera.


Demos

Even I though I already knew about what the Mac OS X APIs provide, I was truly amazed at the demos. I think I had underestimated the power of the hardware until now. Spore was a big surprise entry, and it seems like it was practically designed for iPhone.

Spore on iPhone


AIM on iPhone


I was even excited about the Salesforce.com app — not because it's something I would use, but I was so thrilled to see a third-party developer who doesn't have any particular affiliation with the Mac actually "get" the idea. In two weeks, no less.

The AppStore

I strongly suspect that many independent Mac developers never quite get off the ground because of the last mile: handling payments, registrations, license keys, and so on. The solutions are unclear and even the good ones are outside of the normal area of expertise of a Mac developer.

The iPhone AppStore is a brilliant solution to this. This gives both Apple and third party developers a reason to promote the store and the platform in general.

The better and more plentiful the apps are, the more valuable the platform is and potentially more devices that can be sold. The more Apple promotes the store and the apps in it, the more the developers can enjoy the revenue and recognition of their efforts.

And most importantly, a plan for actually generating sales makes it easier to justify the initial time investment of writing an app.

Some Less Obvious Points

It's easy to forget that all of this applies to iPod touch as well. This actually may be the sleeper feature because the iPod touch is only $299 and requires no contract.

Millions of iPods have been sold at the $250-$299 price point, and the basis for the future of this product line runs all of the same software as iPhone. Not only that, but all of the enterprise features will work on iPod touch as well. That in itself is big news.

So what we have is the newest iteration of the most successful consumer product in recent history now running Mac OS X and Cocoa, with enterprise-level features including Exchange integration. It fits in a pocket and knows your physical location.

Even better? You need a Mac to get in on the SDK. The sales that directly result from this will probably not make a significant impact, but it does have an impact on mindshare.

We're also seeing a glimpse of something else. With iPhone, developers will be coming in contact with Objective-C and Cocoa for the first time, starting to understand what the thinking is behind them. You can certainly see it in the eyes of the folks who put together the demos.
Design Element
iPhone SDK
Posted Mar 9, 2008 — 34 comments below




 

frozendevil — Mar 09, 08 5597

This is really, really cool, and I'm very excited... but I don't understand why the tools are intel-only. That leaves me and my 12" powerbook out in the cold :(

Damien — Mar 09, 08 5598

Do you know what happens to your iPhone after you connect it to be a developer testing unit? Seems a stupid question but I wondered if any changes happened to the phone. Don't want to brick it.

John Muir — Mar 09, 08 5599

@ frozendevil

Oddly enough, after installing the SDK on my Intel Mac mini, I can assure you that the iPhone emulator at least is a Universal binary and does run on my own 12" PowerBook � although to do anything useful you need to install the whole SDK. I haven't on the PPC laptop yet due to lack of space. Not promising it will all be just fine though, just that there are Universal binaries in there instead of obviously Intel only stuff.


As for the big picture: Cocoa is Apple's crown jewels and the strategic significance of the SDK and AppStore can scarcely be overestimated. This is absolutely huge. Expect it to be looked back on as a crucial turning point for not only Apple and phones, but all high tech. Seriously, I anticipate great things!

Matthieu Cormier — Mar 09, 08 5600

Scott,

You're right on the money with the iPod touch. The iPod touch also opens the market to countries where the iPhone is still not available (like Canada). If I wasn't knee deep in programming projects I'd rush out and pick up a touch.

M@

Pierce Wetter — Mar 09, 08 5601

Yeah I've been playing with the SDK.

Weird limitations:

Sync Manager seems to be removed. How am I supposed to synchronize my to-dos with my to-do list program? It seems like the official solution is going to have to be to build a web server into my app, and if I see it on the network, sync over wifi, and it has to be manually initiated. Which seems kind of weird.

Ok, no background tasks. How about a periodical?

Is there any official way to push data to the phone?

Mitch Cohen — Mar 09, 08 5602

An excellent summary of an overall wonderful set of announcements..

One question I have regarding the forced App Store requirement is how to handle limited (closed) beta testing. Will there be a way to distribute an app but only allow a small subset of users to view/download the app? I have a similar curiosity for iPhone apps which are complementary to a desktop app, that might be sold as a bundle. We might not learn more until release. Hopefully they'll consider these issues.

I'm also a bit confused why Apple isn't including the iPhone developer program within the Select developer program. I can see the $99 program for iPhone-only developers; a great low-cost means of entry. But why why not make that inclusive in the Mac developer program, or really, an overall Apple developer program? I'm not being cheap here, I'll spend the $99. I'm thinking that having a combined program would draw more developers to the Mac.

Scott Stevenson — Mar 09, 08 5603 Scotty the Leopard

@Pierce Wetter: Sync Manager seems to be removed

The SDK is not code complete and is almost certainly not feature complete. File bugs for anything you think needs to be there. That's a big part of the reason for seeding an early release.

@Mitch Cohen: Will there be a way to distribute an app but only allow a small subset of users to view/download the app

That's a great question. I don't think there's been anything announced, so the workaround is probably to get them to use the simulator. This, unfortunately, means that they need enough technical expertise to pull that off.

Nicko — Mar 10, 08 5605

"The iPhone SDK itself is free. You just need to create an account. The formal iPhone developer program is $99"

One important point that you failed to note is that the free SDK does NOT allow one to test one's application on a real iPhone, only to test it under the simulator. This makes many features, such as tilt sensors, location services and slow/unreliable EDGE connections difficult or impossible to test.

Florent Pillet — Mar 10, 08 5606

The iPhone SDK is very well done (can't say more because of the NDA) though as Pierce mentioned it, Sync Manager is sorely missing to complete the big picture. I filed my Radar entry on this.

Two things about the $99 developer program: as Mitch put it, the iPhone Dev Center needs either a full-blown developer program in itself with DTS incidents, or a combined program with the standard Mac developer program. Also, as a non-US based developer, I'm not too happy about the US-only initial limitation for the developer program. I'm looking at combining my 10+ years experience developing mobile software with my even longer experience writing Mac software, but I have to wait for my US competitors to test and release their stuff first?

This said, and knowing very well the tools available to develop for other platforms, congrats to the teams working on this SDK for a fantastic toolset and particularly well done documentation! I find the new docset impressive.

mj — Mar 10, 08 5607

Is it just me but my SDK download doesn't seem to have any IB integration. The readme says that early versions of the SDK have to do interface elements programmatically?

Chris — Mar 10, 08 5608

Yep, no Interface Builder for now but it looks like it's planned for the future. I was surprised they showed IB integration during the keynote when they knew it wouldn't be in the initial release. Too much of a tease! :D

victor — Mar 10, 08 5609

I haven't been able to have a look at it yet. Does anyone know if Cocoa Touch is required or can be used to fully use the Multi Touch capabilities of the new MacBooks?

PatrickQG — Mar 10, 08 5610

Getting Interface Builder going is going be tricky I think - the limited amount of memory (the lack of any swap) compels you to creating objects lazily and IB/NIB files create a whole lot of objects, not totally compatible philosophies!

It would be nice, however, to be able to design things in IB, even if it created classes that you created new instances of in code.

Personally I'd love to see bindings and CoreData. Not sure how possible either of those will be given the constraints on CPU & memory, but I can hope!

Chris Gervais — Mar 10, 08 5612

I found a couple of things really interesting about the SDK event:

1. When reviewing the media layer, a huge component of today's iPhone and iPod touch user experience, the word "QuickTime" was never mentioned. Couldn't you have succintly summed up most of that stuff by saying "QuickTime" or is Apple no longer saying "QuickTime?"

2. No mention at all of a .mac SDK for iPhone OS 2.0. Seems like this would be a great feature and allow some nice sharing of data between iPhone apps using Apple's cloud services. Perhaps it's a feature to be revealed later, but I've got a couple of iPhone apps on the drawing board where .mac support would be a key enabler of bridging data from the desktop to mobile device.

Michael Sherman — Mar 10, 08 5614

Anyone know of any mention of integration with other apps such as google maps? I know of a few people who would like to see an overlay of selected points output from a GIS program with some attached data.

Wayne — Mar 10, 08 5615

I'm really quite unhappy with Apple's attitude to non American developers lately.

First we were penalised for not being able or willing to fly to SF for WWDC last year in the form of late access to the significantly updated Leopard Beta that was distributed there, and now we have to suffer this.

Effectively, Apple are giving an artificial head start to any and all competitors I have in North America.

It's bad enough that I will never be able to develop a relationship with my users and that my software will be advertised and sold alongside that of my competitors, but it's far worse that they then get a head start on me.

After SF, I didn't renew my ADC subscription. I'm kinda glad I didn't or I'd have to be shelling out extra for this. At least I've saved myself $400 this year even after getting a signing key if / when they consider us non americans to be worthy.

Scott Stevenson — Mar 10, 08 5617 Scotty the Leopard

@victor: Does anyone know if Cocoa Touch is required or can be used to fully use the Multi Touch capabilities of the new MacBooks?

For that to work, Cocoa Touch would have to be distributed with new releases of Leopard. I don't think anything about that has been announced. You also probably wouldn't want all of Cocoa Touch, because that would include all sorts of widgets that have no relevance in a desktop environment.

@Chris Gervais: Couldn't you have succintly summed up most of that stuff by saying "QuickTime" or is Apple no longer saying "QuickTime?"

To answer without getting into NDA stuff, let's talk about Mac OS X in general. QuickTime was a catch-all media API for Classic Mac OS, but this isn't the case as much now. QTKit and QTCaptureKit are the designated video playback and capture frameworks, CoreAudio and OpenAL are the new audio APIs, CoreVideo does real-time effects, and there are quite a few imaging frameworks.

Andre — Mar 11, 08 5624

No Coredata..... but there is Solitare!! lol..... well I guess with the limited memory some things had to go.... its going to be interesting going back to target-action, delegation, and data source methods.....

Damien — Mar 11, 08 5626

Hi,

Do you have to pay 99$ once or each year ? :)

I can't find any informations about that.

Thanks

Ian — Mar 12, 08 5636

Hello all, great summary. And the demos were definitely great - given the time frame and newness to cocoa of the developers. I had one question, then googled and think I found the answer: I still post my Q and A should you be interested, the answer be wrong or anybody have any extra information:

Why is the iPhone simulator called the ASPEN simulator?

A: It is a contraction of architectural simulator for parallel engines as described here: ieee article

Regards, Ian

Mr. Brown — Mar 12, 08 5637

No Bindings? How can this be? It has always seemed like most of the Mac developers are too stupid to understand bindings even though using them makes writing software easier and faster, and most importantly, using bindings produces less code.

Apple did also neglect bindings by not supporting them properly in NSCollectionView and in other new things. And now this. Why, oh, why?

cjr — Mar 12, 08 5638

I think that the App store is such a great idea, not just for users but for independant one-man-band developers. I wonder if they will extend it to cover the sale of desktop class apps as well?

britt — Mar 12, 08 5641

Cocoa touch is not needed for multi-touch on the MacBooks; from what I read (I haven't done any digging on this myself, so YMMV) there's a private api on NSResponder that takes care of it...

Ben — Mar 12, 08 5642

Has anyone had troubles downloading the SDK? I've been wanting download it since it came out, but all I receive (after clicking login) is a webpage full of greyed-out unclickable links.

Anyone else had this problem and if so been able to get around it?

Scott Stevenson — Mar 12, 08 5643 Scotty the Leopard

@Mr. Brown: Apple did also neglect bindings by not supporting them properly in NSCollectionView

What do you mean?

PatrickQG — Mar 12, 08 5645

@ian Why is the iPhone simulator called the ASPEN simulator?

My assumption (based on the fact that the "Platform" name in /Developer/Platforms/) is that the code name for the SDK release is Aspen, could even be the name they've been using internally for the iPhone SDK for a long time...

As to why Aspen? I saw "Boston" used to describe the iPhone in Ireland project, so maybe they just like city names...

david — Mar 16, 08 5653

To say that I find the iPhone SDK to be a bit interesting is an understatement. Since I'm new the Apple fold I have a few questions.

1. When it comes to downloading the SDK is there a way to get Safari to pick up a partial download from where it was last interrupted? To say the least it is a big file, something that I would normally use wget to get.

2. Does the SDK and frame works make use of Objective C 2.0? I have a Mac now to provide me some latitude with respect to learning Objective C but need to know if it makes sense to do that with the most recent version of Objective C. I guess once I get the SDK this won't be an issue.

3. What is up with the BlueTooth stack. Without breaking NDA is there any sign that Apple will start to support some of the more common profiles that BlueTooth supports? There is a huge umber of potential apps that could be developed if this issue would be resolved.

I hope these questions from a iPhone novice aren't to much of a distraction. Thanks Guys

Scott Stevenson — Mar 16, 08 5656 Scotty the Leopard

@david: When it comes to downloading the SDK is there a way to get Safari to pick up a partial download from where it was last interrupted?

You can see the list of download files in Window > Downloads. In most cases, you can click the orange button with a circular arrow next to the file to resume the download. I'm not sure it will work in this case because you have to actually log in to get to the file.

I think the best way to get answer to your other questions is to check out the SDK. :)

Nick Chadwick — Mar 18, 08 5664

@david: 1. When it comes to downloading the SDK is there a way to get Safari to pick up a partial download from where it was last interrupted? To say the least it is a big file, something that I would normally use wget to get.

I downloaded the SDK myself 10 days ago using Safari, and can confirm that resuming the download (as described above by Scott) does indeed work. I had to do this because I had just rushed out to by a Mac mini, and needed to restart to install system updates, so stopped the download and then continued after reboot.

Hope that helps!

Mishkin Berteig — Mar 23, 08 5685

I'm pretty upset about not being able to test apps on the actual hardware unless signing up for the developer program... not because it costs $99 - that's cheap - but because they won't accept registrations from outside of the United States. Being in Canada, I now have to wait for some unspecified amount of time.

Anyone know of a crack to the XCode system that will allow me to put my apps on an iPod Touch/iPhone to test them? Most of the things I plan to build are completely impossible to test on the simulator since they use either accelerometer or location based information.

david — Mar 24, 08 5686

Hi Guys;

Thanks for all the help. If anybody is interested what I did i made use of a local library in town. That solved the download problem right off the bat. Highly recommended by the way and it makes me wonder why I tried to get the SDK from home.

As to the other questions lets just say that I've been doing so much reading and video watching, the back side was getting a little sore ;) What I've seen doesn't look to bad from the standpoint of Objective C. It looks like the large Frameworks are the bigger learning curve.

I have a ways to go with the information absorption but do have to wonder if there are any indications of when IB will be delivered?

Christopher Su — May 23, 08 5900

Awesome! But do they have a version for the weaker cats? Leopard only?

Sujith Krishnan — Jul 17, 08 6165

Hi all...

Is it sure that iPhone SDK wont support background apps, because i want to create an app, which will start everyday 1am, download bla..bla..

I heard its possible, buut the code might be BUGGY !!!!! isnt it?

Nick — Feb 06, 09 6607

Hi, folks. I'm a bit late to the party here, but I'm considering getting a Mac mini just to use the iPhone SDK.

Is your experience that a 1.8 GHz Mac mini is up to the task?

Nick




 

Comments Temporarily Disabled

I had to temporarily disable comments due to spam. I'll re-enable them soon.





Copyright © Scott Stevenson 2004-2015