UIKit: A Fresh Start

by Ed on March 9, 2008

Having (like zillions of others) just downloaded and started playing with the iPhone SDK this past week, I’m pretty impressed with UIKit. Being a frameworks/API guy myself, I can fully appreciate they way it’s put together. It’s very easy to do the simpler things and if you want to get down and dirty, you still can. I also really like the fact that it’s fully CG-based (no NSGraphicsContext nonsense), and the best part of all to me: top-left graphics origin! Yes, it’s the simple things in life.

I guess above all this demonstrates that by starting over, they’ve been able to take all the stuff they’ve learned over the past however many years of AppKit and were able to make a much more consistent and coherent set of APIs that demonstrate all those years of learning what works and what doesn’t. This makes UIKit a winner to me. Clean, concise. I’m soooo glad they started over. But of course, it was the right choice anyway considering the device constraints and just how different it is from a desktop environment. They certainly needed something smaller and more tuned to the iPhone. Good call.

The jury’s still out on Objective-C 2.0 for me, though. It has a lot of nice new features, but the syntax is still all wacky. The property syntax is a little heavy for my tastes. Almost too much control via the attributes. But at least you can finally use dot notation to get at your data. The thing is: I know I could come up with a way to annotate things and make the syntax more in line with other things out there (C#, etc.) while still preserving the great things about the runtime. I also still seriously wish you could get your constructors called if you put an object in as a member of an Obj-C class. That still seriously irks me. I’d love to hear the reason that can’t be made to work.

My nitpicking aside, I think there’s going to be a ton of iPhone apps coming out. And certainly all that use of Obj-C and their MVC model will likely help Apple get more traction for Mac OS X apps too. Once you’re in that door, the skills transfer so easily. I’m sure it wasn’t the primary intention of coming out with a phone, but it’s definitely a beautiful secondary effect.