The Tumblog of one Jim Dovey, iOS Software Chief Architect at Kobo in Toronto, Ontario.
He Twitters, he has an , and can occasionally be found on LinkedIn or Facebook.
If you have a query, you can ask it here.

This blog contains personal opinions, and is not endorsed by any company.

You can buy Jim's book, Beginning Objective-C, either directly from Apress as an eBook or in print from Amazon:


Posts tagged Cocoa Touch

Developing for iOS in a Server-Centric World 

Turns out, developing iOS apps is different from developing web apps. Like, hella different. For any server-side readers out there, I thought I’d hit you with a few big ones: There is no CSS. Every part of a design has to be coded in Objective-C.

  • There is no flow layout (like HTML). Everything is position: absolute;.
  • Small “cosmetic changes” can mean hours or days for developers to complete.
  • No one unit tests in Cocoa. Like, no one.
  • Likewise, unit testing is a bitch.
  • No one does automated UI testing. There are some open source projects, but it’s far from the mainstream.

Truth from Mr. Furrow there. As someone who went the other way, I can absolutely say that folks using some of these new server-side frameworks have a ridiculously easy time of it.

Things are starting to change on our side, of course: starting back in the late 80’s with Interface Builder and the Application Kit, and more recently with Cocoa Autolayout. There’s still a world of difference between tweaking a CSS file to change a button’s composition and doing that in Cocoa however.



IRAQPhotoPickerController is essentially a photo picker that does multiple selection with AQGridView driving its photo grid. It’s reasonably fast and the header is tiny.

The controller has exactly one public method, which is also its initializer. What it’s doing isn’t exactly new. However it is designed to be friendly with Interface Builder based photo cell customisation.

Here’s a sample app which is still being worked on. Push the Add button, and pick something.

Astonishingly proud & happy to see this 😊

iPhone Development: Greatly Exaggerated 

Jeff brings many of Jon Casasanta’s points down to earth and discovers that, like Mark Twain’s hero, rumours of the death of Mac software have been greatly exaggerated.

Jeff’s main point—the same which leapt immediately to my own mind—is that the most interesting new developer technology is on the Macintosh, not the iPhone. Sure, the iPhone has a more modern user interface setup, all built on top of CoreAnimation for you. That’s just about the limit of it however: the Mac has multi-touch events (NSTouch, anyone?) just like the iPhone, CoreAnimation itself is there, and so much more.

Garbage collection, blocks, and Grand Central Dispatch are all Mac-only (although hopefully the last couple will make an appearance in iPhone OS 4.0? Please?). These are fantastic technologies to play with, and pretty much swung me away from the iPhone. In fact, they’re so important and interesting in so many ways that my forthcoming book, Pro Objective-C for Mac and iPhone, has dramatically more content appropriate to a Macintosh desktop developer than an iPhone developer. There’s just so much more to work with on the Macintosh, even when considering only the Foundation Kit and the runtime.

I don’t doubt that these technologies are going to be made available on the iPhone platform sooner or later; in fact I think it’s inevitable. But they’ll almost always appear on the Macintosh first, so the good Macintosh programmers will be getting the good jobs. Just look at me and Kobo; I didn’t get my position there because I was an iPhone programmer— I got it because I’ve been a Macintosh programmer for many years; I know where the iPhone is now, and I know where it’s likely to be in a few years’ time. So does any Macintosh desktop programmer worth his salt.

So to Jon, Phill and co: as much as you love the iPhone, you ignore the Macintosh at your peril. You owe it to yourselves to learn and work with the newest Macintosh APIs and technologies now, or you’ll be playing catch-up to desktop developers who’ve been refining their arts for a couple of years yet…

The update of Dave Mark and Jeff LaMarche's Beginning iPhone Development is now available for order. The link on the image above goes to Apress, or you can give me a nice affiliation kickback by ordering it from Amazon .

This is the iPhone development bible, folks. Highly, highly recommended.

AQGlassButton on GitHub 

This is a simple glass-effect UIButton subclass, implemented entirely using CoreGraphics. It’s probably not up to the sort of fidelity you can get with a stretched image (and a good illustrator), but it should serve for a nice introduction to the relevant techniques: paths, gradients, and colors.

Update: There’s an image of the default button on this followup post.

Interesting Developments

So I should have something interesting and intriguing to exciting to announce tomorrow (or soon thereafter at least). In the meantime, I’m thinking about the sort of things I can write about here— specifically programming-related questions.

As I told an acquaintance recently: I manage to retain a silly amount of information, but without some sort of external impetus I often forget just what it is I know. In other words, I can probably answer a question about X, but I’m unlikely to find X should I just trawl my brain for interesting things about which to write.

So, I’d like to know if there’s anything anyone out there would like to know more about, or would like explained in a different way. Any pet peeves or seemingly intractable problems. Basically: any questions?