iPhone SDKThe 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.
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.
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.
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.
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.
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.
Posted Mar 9, 2008 — 34 comments below
Posted Mar 9, 2008 — 34 comments below