After downloading Xcode 3.1, I was immediately impressed when my iPod touch was listed in the new Organizer window on startup. Unfortunately I was in for disappointment, remote debugging is not supported without becoming a member of the $99 beta program, which is open to limited numbers in the United States only. I’ve seen a few other concerns raised, such as how do we have a closed beta with the App Store distribution model?
Watching Apple’s set of development videos was a very good overview, highlighting many interesting features. ZeroConf (Bonjour) networking is there, for automatically finding other iPhones/touches on the same subnet. Very nice to see that brought over… online dating beacons, anyone?
“I’m single, and I’m on your subnet.”
![]()
Prior to the SDK release, programmers underwent a lot of effort to access the accelerometer data at 100hz for game-like applications, but now that is the default rate. The built-in accelerometer supports 400hz as well (400 times/second), but I’m not sure if that would be useful, or if it’s even supported by the SDK.
With ZeroConf, OpenAL, and the integration with development tools like Instruments, the iPhone SDK supports much more than I imagined. Unsurprisingly, Cocoa Touch does offer less than Cocoa on the desktop, of particular note:
- Garbage-collection, as I expected is not there, though other Objective-C 2.0 improvements are included. With autopools, it’s not as bad as it sounds, and more detailed memory management is probably best with the constrained resources of a mobile device.
- Core Data is not there (an object-framework for SQLite and XML).
- The high level NSXML* parsing classes are also absent.
- Support to build UIKit interfaces with Interface Builder hasn’t made it over yet, but should arrive by July when 2.0 comes out.
Not having Interface Builder is perhaps the biggest pain, because it means writing code that will eventually be replaced with drag-and-drop and NIB/XIBs. Of course doing it the hard-way first will lead to a better understanding of the platform, so it’s not all bad.
One of my big projects has nothing to do with the iPhone. It will be a console application written with the SQLite and libxml2 procedural C libraries to prepare a database. While it would be much easier to use a very-high-level language for this process, I will eventually need to use SQLite from the iPod touch, and probably libxml2, so why not learn the C APIs now? If I survive that, using Objective-C and Cocoa Touch will be a cake-walk.
I must have been thinking ahead, as I already have a copy of The Definitive Guide to SQLite, which not only goes over the C APIs, but should prove helpful in optimizations specific to SQLite. For my application, I was wondering if Core Data wouldn’t be too bulky, so this could all be for the better.
Overall, the SDK is looking pretty awesome, and is sure to represent as much of a revolution for mobile applications (and gaming) as everyone is saying. But unless you are one of the lucky ones, you will have to wait for general availability of the 2.0 beta program to work with the actual device, as required for OpenGL ES.




