Although Apple has yet to release an official SDK (software development kit) for the iPhone, developers have already become proficient at creating native applications for the device using an unofficial toolchain. Presumably many these applications, some of which hold significant value, will be easily transferrable or natively compatible with Apple's official distribution/development scheme. In fact, Apple hired the creator of the first unofficial SDK.
As such, one of the most noted iPhone developers, Jonathan Zdziarski, has written and released a new book dubbed "iPhone Open Application Development" that will be published by O'Reilly. His description:
"Certain technologies bring out everyone's hidden geek, and the iPhone did so instantly upon its release. Thousands of programmers want to provide applications on the iPhone. This book shows them how to achieve the spectacular effects that made the iPhone an immediate hit. The book covers both Apple's toolkit and an open, community-developed toolkit that has been widely downloaded and used.
"Author Jonathan Zdziarski, the developer of the first fully functional application using the open iPhone toolkit, now explains in clear language how to create applications using Objective-C and the iPhone API, which in some ways resembles Apple's desktop API and in some ways strikes new ground. After covering installation of the toolkits and some background about the operating system and Objective-C, the book offers detailed recipes and working examples for everyone's favorite iPhone feature. Graphics and audio programming, the CoreImage and CoreSurfaces interfaces for games programming, interfacing with iTunes, and the use of sensors are all covered. Any programmer, using this book, can provide applications that impress users just as much as the official iPhone utilities."
Another iPhone developer, Ben Stahlhood, recently 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 Lucas Newman (the engineer hired by Apple) and others in the development community, but has been updated and refined significantly by Stahlhood.