This week at IBM’s Insight2015 conference I have attended a few sessions, generally focusing on mobile and Internet of Things. The mobile sessions have sparked my interest in regards to what goes into a successful mobile app. I’ve seen numbers stated such as that 2/3rds of mobile apps fail to meet their goal, whether it be financially or in terms of features and usability.
It has also been said that 65% of enterprise mobile apps are deleted or under-utilized! We have a situation in which all too often apps are created from porting existing software to a mobile platform without optimizing or re-imagining it as appropriate for its new platform. So I thought to myself, “What makes for good mobile app design?” What are the deleted or under-utilized apps missing? The nice thing about discussing design is that since we can all be users, you don’t need to be a pro to voice an opinion on what you’d like to see. I’ve come up with a list that I hope will help when designing a mobile app.
Find a good design balance that can cater to both power users and novices
(Or, why I don’t get along well with Chrome)
There are tasks where I use programs that I would consider myself to be a power user of, and yet other programs and tasks that I am quite a novice at. Having a program which hides nothing from the user and has a steep learning curve will frustrate first-time users, while designing a program that is over-protective of the users will alienate those with specific wants and needs. This is not exclusive to mobile, and is not always applicable, but the path you take needs to be carefully considered when appropriate.
In the end, you may strive to maximize the amount of users that can get what they need out of your app. I think there are a few design choices which can help appeal to both power users and novices, such as having default pages and options that work best for those who are new to the app, but leave the ability to change these options through a settings page. Another design choice to consider when searching is to have a hierarchy of choices. The user could for example search with a simple search bar, or refine by category, or for those who really know what they want, leave open the option for explicit filtering.
Cross-platform consistency as appropriate
It can be challenging to port a desktop program into a mobile app. There are many design considerations which don’t translate well, as desktop apps may be focused on toolbars accessed via mice, having keyboard access and hotkeys, as well as taking advantage of large screens by having a lot of content on the screen at once.
Meanwhile on mobile you have touchscreens which allow for a different kind of interaction, and less screen real estate. On one hand you can design your programs such that they look and act identical on all platforms. This is the direction that Windows seems to be headed in.
On the other hand, it may be better to have some features of the program adhere to the norms of the platform it will be on, whether this be UI style or interaction. On the UI side, this might mean having your iOS app have toolbars and loading icons follow the native iOS app style, while using the native style of Android and Windows for those versions of your program. And similarly, having contextual menus such as the right click menu, or the menu you get when highlighting text on mobile, which have familiar options and possibly integrate with appropriate native OS APIs.
Mobile should be intuitive
One of the defining features of mobile hardware is that it is designed for humans. That may sound a bit silly, but just remember how long it takes for children to learn how to touch type with a keyboard. Mobile devices are designed with natural hand use in mind. Swiping, tapping, and pinching are all in use on successful mobile apps. A successful mobile design should not need an explanation for how to use these features; it should be second nature to be able to pinch to zoom or shrink text or images.
Common use cases must be fast
Compared to desktops, mobile devices are not powerful. They are also limited by battery life. So, making certain actions fast may seem difficult at first, but I think that one of the expectations of mobile devices is that they emphasize convenience. This is why some people have been able to minimize or eliminate their use of desktops depending on what programs they use. You might have to be clever to extract the most performance out of your mobile app, and you may need to stick to native tools for each platform, but don’t forget that there are very nice and easy ways to utilize Cloud computing to put the processing burden somewhere else.
Design to minimize typing
If you consider that there are two modes to interacting with computers–reading and writing/interacting–then you could say that mobile devices are currently heavily read-centric, as opposed to a desktop. A truly successful mobile app developer must keep this in mind, and minimize the amount of time that typing is required, since typing on mobile devices can be quite slow and error-prone. Instead, you will want to structure your apps to have optimal menus, hierarchically if needed, as well as to have a good organization for the information that you display on screen at once. It would be ideal for users to get all the information they need at a glance, or with just a few taps.
Don’t give up: mobile is a work in progress
It seems to me that mobile is the biggest shift in UI needs in decades. Small screen size and the substitution of keyboard and mouse for a touchscreen has given us the opportunity to explore the best ways in which to present information to users. The visual style of apps is constantly changing, as well as the ways that users navigate their screens and menus. Making a successful mobile app may be very demanding and require multiple attempts to get right, but the reward should make the endeavor worthwhile.