User interface (UI) design is arguably one of the most critical parts of any mobile application. UI design is a subset of user experience design, but instead of focusing on the entire experience of an application, it focuses solely on the functionality, layout, and usability of your app. When mobile app UI design is done well, users can navigate your app with enjoyment and ease. When it's done poorly, however, users may encounter so many obstacles that they aren't even able to complete simple tasks.
In fact, research shows that 52% of users have said that poor mobile application design made them less likely to engage with a company. No matter what industry you're in, that's a statistic that simply can't be ignored.
Getting started with good UI design for mobile apps
When we talk about design, we're not just talking about the color scheme or the font family you're using, but rather how your app functions and feels for the people who will be using your product. The great part about design is that you don't have to be a designer by trade to put user-centered design theory into practice! Great mobile app UI design is all about anticipating your user's needs ahead of time. So how do you ensure that your app's UI is actually supporting your users and their goals?
Luckily, there are a set of well-researched interface design principles to help guide you through the design process so that your app's UI is more intuitive and enjoyable for your users.
Communicate clearly to users
Make sure the system status is visible
The first principle of great UI design is to ensure that users always have a clear understanding of what's called the "system status" of the app. This means that the app needs to communicate relevant information about what's happening on the back-end, specifically when it comes to the actions that the user is taking. In practice, system status visibility is all about being transparent with users in order to build trust, avoid confusion or doubt, and provide a positive experience.
Imagine using an application to make a purchase and receiving no indication that your transaction went through. That would be pretty frustrating, right? What about using an app to upload an important document, and not receiving any information about when your upload will be finished? You'd probably feel a lot more confident if you had received a success message letting you know that your purchase was successful, or seeing a progress bar that tells you that your upload will only take a few more minutes. Success messages are an easy way to acknowledge users' actions as they navigate through your app and complete tasks.
Clear communication is fundamental to all relationships, and this is just as important in app design. Keeping users informed about what's going on supports them in achieving their goals when using your app.
Make navigation intuitive for outsiders
There's an inconvenient fact of all app development: what may seem completely obvious and intuitive to you may be completely confusing to your users. Your app came from your brain, so of course it makes sense to you, but for outsiders, that isn't going to be the case. That's why it's important for every developer to think deeply about the structure and navigation of their app. Your goal should be for the UI of your app to act as an invisible hand, gently guiding users as they explore and use it. There are a few different ways to put this principle into practice.
Breadcrumbs are a great asset to the navigation scheme of any app, especially when users are required to take several steps on different pages to complete a single action. Breadcrumbs are generally displayed as a single horizontal progress bar with text and color that lets users know exactly what step they are on in their journey. This provides users with a clear path as they move from point A to point B and back again. Look for this the next time you're in the middle of the checkout process on an online store.
Just like breadcrumbs create a visible indication of where users are located within your app, it's also important to ensure that users are always given the option to exit, go back, or return home from any screen they are on. Users should always know the answer to the question, "where am I?" Putting users in control and giving them the freedom to explore without getting lost creates a more enjoyable experience, and should be a high priority for any app.
Simplicity is key
Reduce visual clutter
When considering what visual elements to include on each page of your app, it's important to remember that clarity will always win over visual flourish. Visual design elements can be aesthetically pleasing and help differentiate your brand, but every additional unit of information on an interface competes for users' attention and has the potential to diminish the visibility of more relevant information.
It's important to keep clutter to a minimum on any interface while focusing solely on what's relevant for users to complete tasks. Reducing visual clutter improves comprehension. Every piece of content within your UI should serve a distinct purpose in service of your users. Remember, minimalism goes beyond just a visual design trend. Keeping an interface simple maximizes usability and supports users along their journey.
Mirror the real world
It's important that the information, naming conventions, and terminology you include throughout your app's interface mimics the same concepts and language that your target users encounter in the real world.
For example, if you're designing the navigation interface of a grocery ordering app, you should consider how users experience shopping for groceries in the real world. How are the aisles named and organized? Where would users instinctively go inside a store to find fresh vegetables? What are common naming conventions and terms used across all grocery stores that users are familiar with? By using these same terms in your application, users will have a much easier time navigating through a digital grocery store experience.
It's also important to consider the use of jargon. Depending on who your target users are, it's possible that they may not all have the same level of familiarity with industry terminology. Using highly technical language has the potential to alienate a subset of users. So, by keeping language and terms simple and easy to understand—while mirroring the same common language used in the real world—you can reduce cognitive strain and make your apps much easier to use for everyone.
Be consistent within your app and industry
Another way to create a positive user experience in your application is to maintain consistency throughout your app. The great part about being consistent is that it actually saves you time and work in the long run as a developer. By creating a style guide for your application that includes specific branding, typography, sizing, terminology, and capitalization choices, it's easy to make continuous updates, scale your application, and build trust with your users. For example, if you're using an icon in one part of your app to represent a specific category or concept, that same icon shouldn't represent a totally different concept when used on another screen.
Creating consistency also means aligning your app with common conventions found on most of the other applications in your vertical. While it may feel tempting to be innovative in all aspects of your design, calling a pizza an "open-faced calzone" will probably confuse people who have been ordering pizza slices their entire lives. There's good reason that Uber and Lyft use the same exact terms and design patterns across both of their platforms even though they are competitors. By using familiar conventions and concepts, you benefit from all the trial and error your users have done on other products and platforms. That will shorten the learning curve for your app, and increase the likelihood that your new users will understand your UI intuitively.
Utilize proactive design
Prevent errors before they happen
You can probably recall a time when you were asked to create a password, only for a pesky error message to appear, saying that you'd done something wrong. Even more frustrating, the error message didn't even tell you what you did wrong! Often times, you've left out something simple like a special character or a capitalized letter. Sometimes it takes multiple tries to get it right. This is one of the most frustrating parts of using any application, especially because it can be easily avoided. Whenever possible, it's important to include as much information as necessary ahead of time so that users aren't being asked to solve problems after the fact. Eliminating or flagging actions that have the potential to create errors reduces frustration and allows users to explore your app frictionlessly.
In today's age of information overload, it's easy for users to become distracted, which increases the likelihood of mistakes. Anticipating these unconscious errors and providing suggestions, sensible instructions, and clear guidelines helps you stay one step ahead of your users at all times.
Provide users with clear and actionable feedback
While you can do everything in your power to help prevent user errors, it's nearly impossible to guarantee that users won't encounter some issues here and there while using your app. After all, we're only human. When users do encounter errors, you can help smooth over an otherwise frustrating experience by providing the most relevant and helpful information for them to remedy the situation as quickly as possible in order to move forward. In UI terms, this is called "feedback," and it is mostly delivered through error messages and in-app alerts.
Don Norman, often called "the Godfather of User Experience Design", wrote in his book, The Design of Everyday Things, that “poor feedback can be worse than no feedback at all, because it is distracting, uninformative, and in many cases irritating and anxiety-provoking.” When designing error messages, it's important to assume that your users may not understand technical terminology. Error messages should always be expressed in plain language and be as clear as possible, while providing steps to remedy the situation and move forward. It's imperative to avoid techno jargon and error codes. The best feedback empowers users to solve problems on their own as quickly as possible.
Anticipate when users may need additional support
Ideally, you've designed an app that users can navigate with ease. However, no matter how many user-centered design principles you've employed, there is likely some element or aspect of your app that may confuse your less technically savvy users. That's why even the most well-designed apps should include clear and concise tooltips, descriptions, and in-app help text. Wherever possible, it's best to provide as much additional support and context as possible.
But what about issues that can't be explained or remedied in a couple of sentences inside your app? That's where technical documentation comes in. Ensure that help documentation can be accessed and that it is specific to the task at hand. When writing help documentation, ensure that it's worded in plain language, avoids jargon, and provides all the steps necessary to solve the problem.
The ultimate goal of mobile app UI design
The mobile app UI design principles covered above are all designed to reduce what's called "cognitive load" for your users. Similar to computer RAM, cognitive load refers to the amount of information a person's working memory has to hold onto at one time. Any mental process—whether it's completing an action, making a decision, or processing information displayed on a screen—increases cognitive load because it requires energy and effort. A high cognitive load makes it difficult to make quick decisions, process information, or even complete tasks.
Actionable error messages written in clear language generate less cognitive load than complicated error messages that leave the user wondering what the next step is. Ensuring that the interface tells the user exactly where they are in your app means they don't have to deduce it themselves. Minimizing the number of visual elements on each screen makes it easier for a user to complete the task they've set out to accomplish on your app.
With only a little effort spent implementing these best practices, you will be well on your way to supporting all your unique users and their needs.