Quite astonishing that 6994 games have made their way onto the App Store in its less than 8 months of existence. Especially, as one blogger writes, when contrasted with the 800 games the DS platform has seen in over 4 years.

The article goes on to lament the difficulty of finding the real gems amongst all the curiosities that somehow got enough sales to rise the charts. Some comments suggested using sources like Touch Arcade and The Portable Gamer. Another wondered why Apple hadn’t implemented more Amazon-like features for finding similar games, recommendations, and the like?

Which all got my gears turning. Why not “side-step” Apple by building an iPhone App that aggregates and catalogs professional game reviews, even incorporating its own game-specific recommendation engine? Perhaps designed entirely around highlighting the gems that aren’t on Apple’s list.

I would envision this as a database in the cloud, using Google App Engine. Several Amazon-like algorithms are documented in Programming Collective Intelligence, quite conveniently using Python.

But rather than a web front end, why not use web services to create a local store of the data? Perhaps with the help Joe Hewitt’s just released Three20 library. Design an intuitive interface that links to each game in the App Store, and away we go.

If properly maintained, I think such an App has a lot of potential. Even if Apple steps up with better algorithms, this App is able to focus on games in a way the App Store cannot. Better than a catalog, why not enable some social features:

“For years, I’ve often thought about the fact that a lot of people spend vastly more time on websites and forums about the games that they’re playing than they actually spend playing the games themselves.” – John Carmack on Quake Live

As an aside, it was interesting to read some of the challenges John Carmack faced porting Wolfenstein 3d to the iPhone, or the interview with Brian Greenstone (Pangea Software) on the lack of buttons.

The iPhone 3.0 OS sneak peak mentioned a new Game Kit with peer-to-peer multiplayer and voice chat. It sure would be nice if Game Kit came with some standard game controls. Virtual analog controls are showing up in a number of games, all implemented slightly differently. I also wonder if any third-party hardware vendors will come out with some sort of d-pad dock.

Along with all the fan fair for the new iPhone OS 3.0, there comes an updated license agreement for iPhone developers. Running a diff with the June 2008 license mostly reveals the expected stuff about pre-release software and the new features.

There is one little change that could impact game developers, in particular, in section 3.3.2:

“No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple’s Documented APIs and built-in interpreter(s).” (emphasis added)

In the past, it read “be downloaded and used”, which some had optimistically interpreted as to allow scripting languages like Lua, so long as the scripts were part of the distribution and not downloaded later.

Indeed, I have run across claims of games published to the App Store that embed Lua, and it is a feature of game engines like sio2.

Based on the license, using Apple’s own JavaScriptCore should be fine, which can be bridged with JSCocoa, or used in enhanced web applications with PhoneGap.

Apple also has changed the wording from “Published APIs” to “Documented APIs”, better clarifying which APIs are out of bounds.

Despite my nitpicking, overall, 3.0 looks to be a stellar release for this summer.

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 (6)
Home