I’ve been designing and programming mobile device software for about 7 years and each piece of software that I work on usually involves something new and interesting. I find mobile device software to be some of the most challenging software to design well, which is one reason I enjoy working with it so much. There are many factors to consider in the design of mobile device software, that if not thought out well, can result in a
software application that will not be winning any software design awards and will leave the user unhappy and frustrated.
Before I talk about some of the design criteria that must be considered when designing a mobile device application, (from here on out just referred to as “app”), let me define for the reader what exactly an “app” is.
If you have ever used an iOS device (iPhone, iPod Touch, or iPad) or a Google Android device, then you have been exposed to apps. I believe there are also apps running on other types of mobile devices, such as Blackberry. All of these devices come with a few apps pre-installed from the factory and additional apps can be purchased and downloaded directly onto the device.
An app is basically a narrowly focused software application that runs on a mobile device. Well designed apps are a joy to use and usually do just a few things very well. A good app should be very simple and intuitive to use. Rarely will any type of software instructions or manual be required in order for the user to get up and running with a good app. Some apps may display a few initial usage instructions here and there when the user first launches the app, but the best apps are usually so well designed that the user can figure out how it works on his/her own.
Apps are usually purchased and downloaded from an online app store that is easily accessed from the mobile device itself. The Apple App Store is one of the most easy to use and requires only a couple of taps on the iOS device screen to purchase and download a new app.
To design an excellent app requires quite a bit of creativity and thinking “outside the box” on the part of the software engineer. The best app software engineers will usually have a portfolio of well designed apps under their belt and will be able to demonstrate their apps to anybody that may be interested, such as when interviewing for a project or for employment. Since apps run on mobile devices, such as the iPhone, and an app software engineer will undoubtedly have a device on his person, the engineer should be able to demonstrate her apps right on the spot.
The market and demand for apps has obviously exploded during the last couple of years and the pool of experienced and talented app software engineers needed to meet the demand has not yet caught up. A company such as CIBER, Inc. and it’s Global Mobility Practice should be able to command premium client billing rates when negotiating with prospective clients to provide mobile device app design and engineering resources.
So you may be asking yourself “What is so special about apps that creativity and “outside the box” thinking on the part of the engineer is required?” To put it simple, the environment in which an app is used is quite different than the environment in which a desktop computer application is used. Most notable is the way in which the typical person actually uses the mobile device and the installed apps.
It is very common for a user to use their device only for short periods of time. For example, if a user is interested in the weather forecast for the following day. As soon as the thought of checking the weather forecast comes to mind, the user will probably reach into the pocket, pull out their device, tap the weather app, and expect to see the next day’s forecast almost immediately. The user will then probably immediately drop the device right back into the pocket or switch to a different app to accomplish some other very narrowly focused, well defined function.
Another such common function is calculating an exchange rate or seeing how traffic is flowing on the expressway or getting a map route to a certain location.
Often users will have a few minutes of down time, such as waiting in line, and will decide to pull out their device and play a video game app or read a bit of a digital magazine app.
This type of usage environment where the user uses the software for only short periods of time and expects quick results in the form of information presentation or action puts special requirements in the design of the app software that requires experience, skill, and creativity on the part of the app software engineer to get right.
There are many other factors that I have yet to mention that must be carefully considered when designing mobile device apps. To learn about those, you will have to await my next blog post.