iphoneApple released the Software Development Kit (SDK) for the iPhone/iTouch last week. It is a pretty much a complete package. It is based on Xcode the same development tools used for Mac OS X. It gives you access to all of the hardware of the iPhone including the camera and accelerometer - the device in the phone that responds to tilting the phone. There is even a iPhone simulator so that you can test your apps on a virtual iPhone which allows you to develop for it without having to own one. It even allows you to simulate the pinching touch feature. This opens the device to some cool gaming possibilities.I won't go into detail because other sites have done that, as well as, Apple's own pages dedicated to the SDK. I'll just relate some issues from my personal experience.

First, why is this cool or important. Well, initially it appeared that Apple was not going to open the platform for outside developers, but now it has and it opens the door to thousands of applications. If you have used a Palm you know that there are many possibilities for small applications on a portable device and even more so on the iPhone because of it is screen resolution, multimedia playback capabilities, touch interface and connectivity to the Internet. Applications will range from currency converters to pharmacological encyclopedias and beyond. ReadWriteWeb offers some more sophisicated possibilties.

Also, the cost of entry is fairly low. The SDK is free. It is a 2 GB download that expands to take up 5 GB of space. It is not compatible with PowerPC processors, which I'm a little miffed about. It  only works on Macs with Intel processors. Like other features in Leopard, the PowerPC processor is not fully supported, but that was inevitable with the move to Intel's dual core technology. The G5 and lessor PowerPc chips just cannot keep up with the demands of the newer software. But, I'm on a tangent...

While the cost of the software is $0, the developer program cost $99 and $299 for proprietary, in-house developers. Applications can only be made available through Apple's App store which will be available on the iPhone and iTunes.  The developer sets the selling price. Apple takes it cut of 30%, but handles all related costs of distributing the application, including credit card processing and bandwidth.If you are giving away your application there is no cost beyond the developer fee. I think it sounds like a pretty good deal, especially for small developers to get their products in front of thousands of potential customers. 

Apple will review the applications and there are some restrictions, such as, no pornographic, illegal, high bandwidth and "unforeseen" apps. "Unforeseen" covers a lot of ground. Also, applications cannot multi-task. If you are chatting on AIM and a phone call comes in the IM application has to stop. It cannot continue to retrieve messages in the background while you are talking on the phone. This limitation has caused some grumbling, but is probably for the best. Apple is concerned about the user experience and does not want the iPhone to lock up, not respond or freeze due to competing applications. Ask iPhone users who are former Windows Mobile smart phone users and you'll discover that the iPhone has proven to be more reliable, of course there are a lot fewer applications now and it is not a fair comparison. However, I think Apple wants to try to maintan the reliability of the iPhone. In fact there are tools to help developers easily evaluate the performance of their iPhone application in the SDK.

Keep in the mind these developments apply to the iTouch as well which will greatly expand the capabilities of what was originally just an audio and video playback device.  

The applications will be available with a 2.0 upgrade for the iPhone in June 2008. Now if Apple would make the iPhone available to other cell phone networks, the market will really expand. 

For those of you that actually developers, the software language is Objective-C. The same language that Apple has been using and developing OS X with for years. Apple offers loads of well organized documentation, videos and sample code on it's iPhone DevCenter web site. I do not know anything about C myself, but I might willing to start to learn in order participate in this "new" platform that could potentially have a big impact on the mobile computing arena. The iPhone or iTouch is going to appeal to many more people than the Palm Pilots and Microsoft Mobile devices.