UPDATE: Ben Stahlhood has now created a complete guide to building native iPhone applications using XCode 3.0 under Mac OS X 10.5 (Leopard). Included are instructions for setting up a staging area, creating a mountable iPhone filesystem, installing the toolchain, and finally setting up XCode with a custom iPhone application template. Much of this process was developed by Newman and others in the development community, but has been updated and refined significantly by Stahlhood.
The field of unofficial third-party native iPhone application development is maturing rapidly. Thanks largely to the spectacular Installer.app/AppTapp from Nullriver Software (see our guide on using it to install applications on your iPhone) and the efforts of a handful of dilligent third-party developers, there are now well-working native instant messaging clients, a GPS application, and several other useful apps.
Bringing more developers into the fray, however, is a process that has been mitigated by a three significant factors: 1. Developers have yet to establish a method for monetizing native iPhone applications; 2. The fact that Apple could introduce an iPhone software/firmware update that disables most/all third-party applications, or could introduce its own scheme for third-party applications that obviates the current method; 3. The lack of a cohesive SDK (software development kit) for creating applications.
The first issue will likely see some progress shortly: Nullriver Software tells iPhone Atlas they'll soon be implementing a method to charge for applications. The second issue is more precarious, hinging on Apple's whim from update-to-update until (if) some formal policy is enacted. The third problem is in the early stages of resolution, thanks to the efforts of Lucas Newman, an avid iPhone developer who worked on the first native iPhone game, Lights Off and helped develop our initial 5-step native application install guide.
Lucas' unofficial SDK consists of the following components:
- An 18-page PDF instructional guide with steps for downloading and installing the development toolchain.
- An Xcode template
- A set of sample iPhone applications
and provides all the foundation necessary for intermediate to advanced developers to begin creating native iPhone apps.
As discussed in the guide, most of the familiar Cocoa frameworks exist on the iPhone, including: Core Foundation, Foundation, Core Graphics, Core Audio, and CFNetwork. There is also a UIKit, which is roughly equivalent to the Desktop Mac OS X's AppKit
Unfortuantely, there is no interface builder for the iPhone: all interfaces are done in code.
Lucas' guide includes sample code for creating a window, handling input (swipes, etc.), transforming views in 3D and more.
Sample applications, along with built versions and all components (source, images, etc.) include: FlipACoin, Motion and NetServices. You can move these applications to your iPhone by putting Installer.app on your iPhone, then install OpenSSH (under 'System' in the Installer.app interface) immediately. You can then use the fifth step in our 5-step guide to transfer apps from your desktop system to the iPhone. Full instructions are here.