A tale of two iPhone SDKs

Posted 6 February 2008 @ 8am in Applications, Development

Apple is due to ship an official iPhone software development kit (SDK) this month. Promising to create a “vibrant third party developer community around the iPhone,” CEO Steve Jobs promised in October 2007 that the SDK would be “in developers hands” in February. However, there’s already a vibrant iPhone developer community — one from which Apple has plucked for its own efforts — awaiting the specifics of a sanctioned software mechanism and eager to see how Apple’s SDK compares to the current, unofficial scheme.

Covered ground

Apple won’t be so much “creating” a framework for third-party applications on the iPhone as it will be putting its own (albeit potentially obsoleting) spin on a well-traversed system. Not only do native third-party iPhone applications (which can be installed on iPhones that have undergone a “jailbreak” procedure) exist in abundance, developers have created a fairly robust unofficial SDK, including a complete guide to iPhone development that integrates Apple’s XCode, an integrated development environment for Mac OS X. Instructions for setting up a staging area, creating a mountable iPhone filesystem, installing the iPhone toolchain, and finally setting up XCode with a custom iPhone application template are all included.

Furthermore, developers aren’t yielding in the face of Apple’s SDK. We’ve learned that Cocoa Machine, the team behind the aforementioned iPhone app development guide, is working on a new installer package that will automate toolchain installation. And Jonathan Zdziarski, one of the most noted underground iPhone developers who has been instrumental in developing numerous jailbreak methods, recently released a book through O’Reilly Publishing dubbed “iPhone Open Application Development” that explains in how to create iPhone applications using Objective-C and the iPhone API. The book covers graphics and audio programming, the CoreImage and CoreSurfaces interfaces for games programming, interfacing with iTunes, and the use of sensors.

Validation of the unofficial development efforts came in the form of Apple’s decision to hire Lucas Newman as an “iPhone engineer” Newman is an avid iPhone developer who worked on the first native iPhone game (Lights Off), helped iPhone Atlas to develop our initial 5-step native application install guide in August 2007, and wrote the first unofficial SDK for the iPhone.

As such, it’s likely that the first developers to adopt Apple’s official SDK will be those who have been involved in unofficial development for months.

Application distribution

Of primary concern to these early developers, many of whom will seek to transfer their existent iPhone binaries to the Apple-sanctioned platform, is the official method of distribution.

Unofficial iPhone applications are currently distributed primarily through Installer.app, a native application from Nullriver Software that allows binaries to be browsed and installed directly on the device over a WiFi or EDGE connection. The method is slick and largely seamless.

How Apple will choose to distribute applications is still a mystery, but the smart money is on a method that involves iTunes.

“I suspect apple will use iTunes, and probably offer developers (or at least manufacturers) a cut. That might also mean a minimum fee even for open source apps,” said Jonathan Zdziarski.

Most unofficial iPhone applications are free. Required purchase through iTunes could mean a dearth of free applications — or not. Ben Stahlhood, a member of the Cocoa Machine team, thinks Apple will allow for free and open-source applications by letting the programs be pushed locally through iTunes without store interaction.

“I don’t think Apple would force you to pay them to get an app on the iPhone. I (developers) will be ale to add applications to iTunes like you can an MP3, and the apps will load under an iPhone “application” category (like ringtones), then you can sync,” said Stahlhood. “If you want it distributed through the store, you would have to pay Apple, but then you get your application in front of millions.”

“No matter what, it will need to be signed.”

By saying applications will need to be signed, Stahlhood is making reference to “Nikita,” a mechanism instated in iPhone software/firmware 1.1.3 that requires native iPhone applications to carry a special key in order to run on the device. Such a key would likely be supplied by Apple to authorized developers. This would presumably preclude distribution of ultra-grassroots, raw applications.

Apple’s fear

In his announcement of an official SDK, Steve Jobs said a top priority was to “protect iPhone users from viruses, malware, privacy attacks, etc,” adding ” This is no easy task. Some claim that viruses and malware are not a problem on mobile phones—this is simply not true. There have been serious viruses on other mobile phones already, including some that silently spread from phone to phone over the cell network.”

While a genuine threat in the form of an unofficial iPhone application has yet to materialize, the prospect is certainly disconcerting for Apple. Of particular concern is “voyeurware” — applications that could surreptitiously monitor the iPhone’s camera and or microphone, spying on users.

Developers’ fear

Developers, meanwhile, are fearful that Apple will too harshly restrict iPhone development in light of its security concerns and other considerations.

“The fear is that the SDK will not be open.  Not open in the sense that we feel it should be,” says Stahlhood. “Apple could release a widget based SDK and say that is what they meant. Remember, they released the Web stuff and called that an SDK. It just pissed people off.”

Tool specifics

Developers are also curious about Apple’s tool implementation. Most expect Apple to release an SDK that integrates nicely with the XCode/Interface Builder tool set.  They could, however, go another route and release a separate tool in the spirit of “Dashcode,” an environment for creating Mac OS X widgets.

The existence of a Mac or Windows-based emulator is also being discussed. Stahlhood says “I think they might release an emulator, but they might also say, if you want to develop for your iPhone you need to buy one… that way they force you into getting one as a developer.”

Co-existence possible?

One burning is question is whether the current, unofficial application universe will persist after Apple’s announcement of an official SDK. Unofficial developers have withheld a method for jailbreaking iPhones with software/firmware 1.1.3 until Apple releases its SDK. The intent: mitigate any attempts by Apple to eliminate compatibility with unofficial applications during the SDK rollout. Obviously, many developers would prefer the existence of two app development/distribution avenues.

Others, however, would be happy to ditch the unofficial method if Apple’s scheme is open, powerful and easy-to-use.

“It all depends on Apple,” said Stahlhood. “If their SDK is fully open and allows complete access, there is no need for (the unofficial method).”

“Now, you have the group that will continue to create apps and use Installer. But once Apple released something and if it is great, why waste the time anymore? Time is money.”

Feedback? info@iphoneatlas.com.

[ Digg this  |  Bookmark on del.icio.us ]

Print This Post Print This Post

3 Comments

Posted by scottywz
6 February 2008 @ 4pm

I wonder if Apple will do something similar to Installer.app, like put app downloads into MobileStore.

Posted by artl2
6 February 2008 @ 4pm

“it [apple} will be putting its own (albeit potentially obsoleting) spin on a well-traversed system”

isn’t it a bit premature to make comments like this until apple’s SDK is released and has had a bit of use by developers? the SDK may well improve he development environment. perhaps the existing “pirate” development kits can be made to function with apples.

I submit that within days(maybe months) the iPhone development community will transition to the apple SDK.

Posted by hypermark
14 February 2008 @ 11am

For what it’s worth, I have blogged recently on this iPhone SDK topic with a specific focus on the iPod touch, given Apple’s suggestions that the device is poised to become the first mainstream Wi-Fi mobile platform

The post covers potential breakout applications for the platform. Check it out if you are interested in such things:

http://thenetworkgarden.com/weblog/2008/01/ipod-touch-the.html

Cheers,

Mark

You must log in or register to post a comment.