On October 1st Apple announced they would be lifting the non-disclosure agreement for released versions of the iPhone SDK. On Thursday the new agreement was finally posted. Developers can now talk freely.

As a result, books on iPhone development are becoming available, including those from Pragmatic Programmers and one from Manning. I was surprised to see the second edition of iPhone Open Application Development, which demonstrates development utilizing a third-party toolchain and installing without App Store.

As far as distributing GPL software on the App Store, I was pointed to an article on linux.com. There may still be conflicts between GPLv3 and code signing, but there should no longer be issues with GPLv2.

For the Sword project, Greg Hellings has been talking on the Sword developer list about creating an iPhone Bible reader. Now he can, since Sword is GPLv2.

News on uikit.com has been sparse, partially for fear of the Kraken. Now that the NDA issue is dead, things could possibly change. For now though, you may want to check out Mobile Orchard, a recently launched iPhone developer news site.

Today Pragmatic Programmers pulled iPhone SDK Development due to Apple’s non-disclosure agreement. At the same time, Apple placed an NDA on their rejection letters.

When I first setup uikit.com, I intended to document my progress as I developed an iPod touch application. Having done a little work on MacSword, I thought I might become involved in porting it. Since my Palm no longer functions, I needed a replacement for MyBible. Discussions in the Sword mailing lists concluded that the GPL license conflicted with Apple’s licensing terms. Apparently that hasn’t changed.

Is this what Apple really wants? Placing iPhone developers in silos, where they cannot talk freely, preventing authors from publishing books on the subject, and limiting what can be ported over to the platform?

How upsetting.

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.

Today the developer community is abuzz with Apple’s pre-release of the iPhone SDK. Developers who once used jail-breaking techniques to write software for iPhone and iPod touch can transition to an Apple-supported development platform and distribution model. While it won’t please everyone, I am quite happy with Apple’s model and the tight integration with Xcode.

As I put the finishing touches on a Ruby on Rails contract, I have been planning out applications I would like to build and use on my iPod touch. To get a head-start, I’ve been reading through iPhone Open Application Development as well 3D Math Primer and OpenGL ES Game Development. From the Internet, a few documents on accelerometers, the PowerVR MBX graphics chip, and the ARM11 processor are helping to round out my understanding of the Touch.

I consider myself a neophyte to this platform, with a small amount of Objective-C experience dating back 6 years, and more than a decade since I touched straight C. Any Mac OS X programmer has a huge head-start, and many people have even worked with the iPhone already.

“I am alway doing that which I can not do, in order that I may learn how to do it” - Pablo Picasso

By starting at ground zero, and writing about the process, I hope to provide a useful resource to others new to the platform. Here I intend to summarize my research and experiments, at least to the extent which the Apple NDA allows.

For now, I’m just waiting for the Apple Developer site to settle down. Can you believe it? Huge demand.

Authors
  • uikit.com is dedicated to iPhone and iPod touch development with the Cocoa Touch Framework.
  • Nathan Youngman (4)
Home