I am in the middle of developing my first iOS application and throughout the process it has become more and more clear to me just how important "simplification" is. When I first started my application I had a large list of features that I wanted to support. It shouldn't have been a surprise for me when I finished my first user interface mockup that the interface was too cumbersome and complex. I really didn't like it. So I took another cut at designing the interface and that design wasn't much better. What was I doing wrong?
My first app is an incredibly simple utility application, and because of that I didn't want to end up with an interface that required any type of instruction on how to use or navigate through. So I chose to go back to the basics and base the app on Xcode's Utility Application template. This is the basic utility template Apple used for the Stocks and Weather apps that come pre-loaded in iOS. There are two main advantages to using the Xcode templates as a starting point. The first advantage, especially in my case, is that the utility template has a control scheme that all iOS users are familiar with. So if I start with that basic scheme the user will automatically know how to get to the app settings screen of the utility. The other advantage to using the Utility Application template is that the controls pre-built into the application don't get in the way of the app itself. What do I mean by that? When you look at the main screen of the Stocks or Weather app you don't immediately see controls. Instead you see either weather or stock information. The little "i" or information button on the main screen of the app doesn't detract from information you really want the user to be paying attention to.
So how did I get my long list of features to fit into such a simple app control scheme? I didn't. I had to eliminate many of the features and control options I had planned for the app, but this ended up being a really good thing. Why? More control or settings options for the user is not always a good thing. I know what some of you are thinking...giving the user more options is good and taking away options is bad. Yes, options are good but if the main purpose of the app is to provide a simple service or set of data then more options and controls simply get in the way of the whole point of opening the app in the first place.
Most applications (especially utility applications) are accessed for only short amounts of time by the user. Do you really want the user spending that incredibly short amount of time making decisions that I would characterize as secondary to the prime use of the application? For most applications the answer is no. So in order to simplify the control of my app down to something that would fit the basic control structure of the Utility template without sacrificing important features I made some of the decisions for the user. I made these control decisions based on what the users would be using my app to accomplish. How did I know with such certainty what a user is going to be expecting? Simple...that's the answer, simple. The app was designed with a singular need in mind and everything that went into the design of my app was based on that one need. Some of the best apps in the app store are apps that do only one thing and do that one thing really, really well. My next blog post will talk about how you start the app design process with this singular need in mind and ensure the app doesn't stray from that focus as you progress through the coding and completion of the app.