Creating iPhone UI Mockups

When I begin designing a new iPhone application, I always start with simple wireframes. I prefer to first build my user interfaces as low-fidelity wireframe sketches, rather than more realistic images of user interfaces.

I have found that during the early phases of the project sketchy, low-fidelity wireframes better focus the conversation on functionality, rather than visual design. Otherwise, it’s easy to go down the “font and color selection rathole”. This is particularly the case when working with clients.

Low fidelity wireframes, by eschewing many cosmetic factors, are also faster to create and modify and thus allow me to quickly tackle fundamental issues regarding the usability of your interface. Suggestions and refinements can quickly be incorporated for further fine tuning.

Adopting a user centered design philosophy by first focusing on the usability and interactivity of your interface before applying a visual design provides you with a solid foundation for great design rather than having a pretty, but unwieldy, visual design long set in stone that must be expensively remodeled.

I’ve used a number of tools, but my recent favorite is the wonderful Balsamiq Mockups It’s an Adobe Air application, but don’t hold that against it, it works great on the Mac.

My favorite features are probably the wiki-style text markup for quickly laying out table views, and the ability to easily export selections to the clipboard as PNG images for easy pasting into presentations and documents.

Tagged: ,

An Excellent Approach to Branch Management

I’ve had several colleagues recommend an approach to managing development and release branches using git from Vincent Driessen in his blog post A Successful Git Branching Model.

A Successful Git Branching Model

I’ve been using it myself a few weeks myself (though admittedly not on a release system) and it feels correct to me. It is similar to approaches I’ve used in the past with CVS and SVN. The approach is not particular novel or remarkable necessarily, but the post is very detailed and very well explained, to the the point it’s a great thing to point to as a standard process. I plan to use it on all my production projects.

There is also a project on github called git-flow that provides a high-level set of operations to mimic this workflow. It is described in the blog post Why aren’t you using git-flow from Jeff Kreeftmeijer. I have’n used it myself yet.

iPhone Blogs I Follow

A colleague recently asked me for a list of iPhone development blogs that I read. Here’s some sites whose RSS feeds I follow regularly:

A Clean Slate…


I recently decided to reset my blog and start from scratch. Even though there was 10 or more years of postings here, I’ve historically been an infrequent poster so it didn’t amount to much.

The effort to move everything forward just wasn’t justified. I mean, if you really need the power points slide from a talk I gave on JavaScript in at a Netscape Developer’s Conference in 1998, well, I’m sorry.

That being said, if you came here looking for something that was actually useful, I do have all the old data and will move things back online as necessary.