Saturday, March 08, 2008

First Look at the iPhone SDK

I've just started downloading and reading up on the recently announced iPhone SDK. The Apple development environment, Objective-C and all those frameworks, has never quite appealed enough to me to dive into them. Using those same things for iPhone apps could be the tipping point for me.

Looks like quite a nice set of sample applications to use for a starting point. And FAQs and tutorials available the first day. That's a good sign for me. People have thought through use cases, likely questions, and getting-started scenarios. Too often, good technology is bogged down in technology for its own sake, or installation/startup problems are assumed to be handwaved away.

I'm a bit saddened that Palm didn't entice me with this kind of stuff several years ago when I tinkered with Palm programming. (I have a blog post in the back of my head entitled "Why Palm Didn't Take Over the World" that deals with that notion.) With all the emphasis on rewriting Palm OS using Linux and what have you, I never saw a push for things that I felt would yield a lot of bang for the buck. Enhancements to the PC-based client software -- the Windows version never changed much, and the moribund OS X version is so limited and painful I've stopped doing any entry or synching on OS X. (With the iPhone, is there any doubt that iTunes will keep gaining more and more capabilities? Already, the iPhone demos are supplied as movie downloads through the iTunes store.) Pushing the platform to its limits -- does it really take a complete Y2K-style rewrite to, let's say, allow to-do records to have more than one category, or 256 categories instead of 16, or some combination?

The thing that continues to hold me back me a bit, looking at the sample material, is what I think of as "frameworkitis". For every conceivable thing you might want to do, there's a different method with a long name. Just memorize a few hundred of those and you're off to the races. For learning any large system, there's a balance between the number of things to learn at the first, second, third, and sometimes fourth levels. When I evaluate the usability of any development environment, I look at whether too many things (class or procedure names) are pushed up to the top level, or whether you can learn a small number of general things, and then branch off to other things that follow logically. Let's break out that simulator and see how the iPhone APIs fit into that view of the world!

No comments: