How I Design for iOS

Posted on

As a developer, designing is a big challenge. My process is a lot different than "normal designers." I design much like I code: trial and error.

When I'm programming, it's constantly running the tests to see what failed, trying a fix, repeat. It's finding a bug, try a fix, repeat. You get the idea. That's how I work. It's constantly iterating on ideas to see if they work.

When I was first starting out, I'd find myself reading entire source files to try to understand everything that was happening and only running the code very rarely. It's no surprise that were lots of bugs in this code. Letting the computer do the work for you is like the whole point. Anyway, this is how I design.


Sometimes I start by sketching on paper or on an iPad. I only do this if I have no idea what I'm trying to do. If I can't picture what I'm trying to make in my head, I sketch. There's something about sketching that really helps me visualize the end result. Scribbling down idea after idea is where most of the actual "designing" takes place for me. Again, it's an iterative process.

So once I have a rough idea of the structure and layout, I jump into code. I don't use Interface Builder at all (on iOS anyway—Mac is a different story). I haven't used Interface Builder since my very first application (unless it was removing other people's NIBs). We'll save the why for another time.

Prototype Early

On iOS, it's so easy to just get something you can use. Just through together some UINavigationControllers, etc. A lot of developer confuse "design" with "visual design." They think it's only pretty pixels. The flow is the most important part. If your app is super pretty but no one can use it, it's pretty useless.

I like to just get something I can use on my phone with all system controls. If things feel good, then I move onto designing pixel. Most of the time, my first take is terrible and I go back to sketching. Iteration.

Pixel Time

For pixels, I work the same way. Once I have the layout, it dictates what needs some extra love. If I can't picture what I'm doing, I'll open Photoshop and mess around until I see something I like. A lot of the time, I don't save my PSDs. They are just pixel sketches. Once I know what I'm doing, I start implementing in code.

I often try to implement as much as I can in code instead of using images, but sometimes it's a lot easier to just use an image asset. I have an "asset farm" PSD with all of the assets I need. I keep this one around for when I inevitably change something.


So there's no secret to getting into design. Just do it. Go get a piece of paper and start scribbling down your ideas. If you want to get better as a designer, go browser Dribbble or the App Store for inspiration. All you need is inspiration and iteration.