Your App’s Settings Should NOT be in the Settings App

SettingsA frequent issue when you create iPhone applications is that if you need settings for your app, where do you put them? There are two sides to this issue, and both sides have good arguments. You can either put them in your app, or put them in Settings.app. Right now I’d like to share my opinion.

The goal every developer sets out to do with their app is to make it simple and easy to use, or intuitive. The last thing you want is for your users/customers to fumble around your application helplessly looking for how to do something. It should be straightforward.

For this example, I’d like to use the Mac. System Preferences has settings for all of your system-related functions. You can change system-wide appearance, desktop picture, energy saving options, sounds, and update your computer when needed. For all applications that you may install (or even the ones that come standard in your Applications folder), they have their own settings. This is, of course, most useful because they’re easy to get to.

Say I have a MacBook. I may want to share my iTunes Library over a network without a password so at home I can easily listen to my music no matter what computer I’m using. Other times, if I’m at Starbucks, I may not want to disclose my iTunes Library to all patrons of the store. I may wish to set a password, but that’s not convenient for while I’m at home.

Appropriately, desktop applications have their settings built in to the app, otherwise, I’d have to open or switch to System Preferences to change these settings. Even if there was an iTunes section in System Preferences, it would not be a terrible inconvenience for me, as I could still keep iTunes open and easily switch back to it.

The case is different on a mobile device. While many argue that screen real-estate is precious (I agree), still the most important thing is ease of use. A settings button to activate a place where users can change some simple things for your application is good to do. If I were to use the same example as I did with iTunes on my computer for iPhone, the situation would be very different.

On iPhone, you can have one application open at a time. Compare this to the desktop where you can have an almost infinite amount of applications running at once with easy one-click focus-switching. If you keep your application’s settings in the Settings application on iPhone, your users have to go out of their way to change how something works. That means they have to quit your application, go to the Settings app (which is most likely on a different home screen page), find the application in the list (if you have 20 apps that have settings, this can be quite a chore), change a setting, quit Settings, find the application again, open it, and see if it did what you wanted. Especially if the user would like to experiment with a few preferences, that requires them to switch between your app and the Settings app a few times. Talk about inconvenient.

Temporary Applications

Your applications are temporary.

See these ×’s? This means your app is temporary. A user can delete your application whenever they so choose. The applications that come standard on the device cannot be removed and have all the settings they require in the Settings app. Your settings should be in your app, as they are just as temporary as the application itself.

The other side of the argument is that preferences are things that users should not change too often. For the most part, this is true, most people will be happy with the default settings, but people do have preferences, and that’s why we offer alternatives. Do not make it difficult for people to change these alternatives and experiment.

Something also to keep in mind is that when someone is using your application, they see all they can do when the app is open. If they want to change something, do you expect them to go through the hassle of navigating to a completely different location to find a preference? It should be as simple as everything else in your application. Find room to put a button for people to access things they may want to change. If you cannot find a spot to put it, you should reconsider your UI.

iPhone is a mobile platform, but we do have desktop-class applications. iPhone runs OS X, which means we can do wonders with our applications. Of course you will have to simplify where necessary, and choose which features to keep and which ones to remove (if you have a desktop counterpart), but remember that this is a powerful platform. The more things people can do with their phones means the more time they will spend using them.

This is not about if the user is going to change settings often, it’s about making everything easy for them to do. Leave the Settings app for system-related preferences and built-in applications only.