Customization For Customization's Sake

I am taking a break from Twitter for a while, but after reading on more than a few sites about Tweetbot I purchased it and started tapping around. Of all the 1.0 Twitter apps I have purchased in the past year, this is the closest I have gotten to switching away from Twitter for iPhone.

Tapbots signature is the completely custom user interface and experience they put into apps. There are very few pieces of any of their apps that use stock iOS widgets. Customization is a great way to stand out in the crowd and in in the AppStore world where purchase decisions are based off looking at screenshots, I am certain that their custom theming alone sells more than a few extra copies of the app. I can’t help but wonder what features were left on the cutting room floor because the Tapbots guys spent so much time completely customizing the interface for the sake of customization.

Customizing the user interface of a product is a very sensitive process. Most iOS devices that shy away from the standard striped table backgrounds and blue title bars just do mild customizations. They tweak the tint color of the navigation controller or add a tiled background. They also may adjust the table view to have a textured background and different colored cells. iOS’s controls generally facilitate these customizations with exposed properties, though in some cases you need to do a bit more custom coding. For instance, Elements uses a custom background image and buttons in its navigation bar. It’s not a complex adjustment and required just a few extra lines of code.

Apple has invested thousands of man hours into the design, testing and usability of the stock controls that ship with iOS. No matter what application you use a UITableView in, the animations respond and are timed in the same way. When you tap a delete button and a UIAlertView pops up, it’s the same animation speed and button response feel. Mimicking the feel of Apple’s default controls in a completely custom context is incredibly hard and not something easily accomplished.

As good of a job as the Tapbots guys have done, it’s not perfect and those little imperfections in delayed tap responses, slower loading of alert views and performing the wrong action on a tap-and-hold are what make me go back to Twitter for iPhone, which has the same functionality, but built around Apple’s standard interface controls.

I am more than willing to concede that niggling issues like millisecond differences in response times are things most people who are buying Tweetbot won’t notice or even care about. That doesn’t mean they aren’t important. Those are the little details that the best companies sweat.

Customizing the user interface of your application should serve two purposes:

  1. It should improve the aesthetics of your app.
  2. It should improve the usability of your app.

The first item is purely subjective. Everyone has a differing opinion on Apple’s forthcoming aesthetic tweaks to iCal’s user interface in Lion, and I am sure they do for Tweetbot or any application that shies away from the stock control colors and styles in an application. You will never please 100% of your audience with your user interface choices.

The second item on improving usability, however, is a must. Never customize the interface of your application just for the sake of customization. Do it because you truly believe it offers a better experience over the standard iOS way for all of your users. There is a reason that Mac OS X and iOS don’t support theming out of the box and we have a deep seated hatred for cross-platform apps. Users expect apps to look and behave in a similar way no matter where they were developed. When you unlock the world of themes, skins and other crazy user interface adjustments you end up with Linux on the desktop.