No matter how great you are at coding, an application will be of little value to the business if it lacks an effective interface. It's critical for developers to understand the fundamentals of app interface design and choose an interface strategy tailored to end users' priorities.
By knowing what is important to your users and which type of interface makes most sense for your app, you can select an app interface design approach that provides the best balance between the various design principles. Let's dive deeper into what developers need to know about interface design, including some fundamental principles and three common approaches to interface development.
Interface design principles
For virtually all interface types, apps and users, there are several principles that lay the foundation for effective interface design.
An interface should be simple. In practice, this means that the cognitive effort required from end users to complete a task should kept to a minimum. However, this is easier said than done. Simplicity is subjective. Something that is obvious to some users may confuse others.
As a developer, your task is to determine what your target users consider to be simple and then implement an interface that delivers accordingly.
Efficiency goes hand in hand with simplicity. App interfaces should be efficient enough that users can complete tasks in as few steps as possible. To have an efficient interface also means avoiding redundant elements with the design. For instance, you don't want users to have to click two buttons in a row just to move to the next page or force them to enter information more than once.
An app interface should also offer a consistent experience -- a pretty objective principle. Consistency, in the context of app interface design, means that the interface structure and style are the same across the entire application. As a developer, you don't want to build an interface that relies heavily on menus in one part of the app and then an interface driven by forms in a different part.
Regardless of the specific application features or components users access, the interface experience should be consistent.
When users engage with the app interface in some way, they should receive feedback. For example, this could mean the button they click changes color or it could come in the form of a pop-up box that says: "Processing. Please wait."
Without feedback, developers risk leaving users unsure about whether their input was accepted. Did they really click the button? Is the app being buggy and not processing the request? Avoid this by providing instant response.
Feedback should remain available until processes are complete. Don't leave the user in the dark by displaying a blank screen or freezing at the previous screen. If your app is going to take time to process a request, keep a status bar open so users can track progress.
To the best of the developer's ability, every interface should be directly accessible to every user. This requires choosing a layout, font colors and size, among other stylistic elements, that make the interface easy to view and navigate for as many people as possible.
Where many developers go astray, when it comes to accessibility, is when they assume users who can't easily work with the interface will know accessibility tools, such as screen readers, are available and will understand how to deploy them. Think of accessibility tools as a backup, rather than a core part of the user experience you deliver.
The best interface is one that every user can navigate without the need for accessibility add-ons.
Three key approaches to app interface design
Most applications use one of three interface design strategies. None is inherently better than the others, yet each excels at meeting certain app interface design principles.
The interface design approach you choose, then, should reflect the design principles most important to your users. Although in a perfect world you would be able to cater to all principles equally, in the real world you often need to make compromises.
A menu-driven interface uses menus to enable users to navigate application functionality. An ATM screen is a common example of an menu-driven interface. The main screen shows different menus, like Deposits, Withdrawals and Information. From there, users click the menu that corresponds to what they want to do.
Menu-driven displays are great at providing a simple and accessible interface. By enabling users to select menus rather than forcing them to navigate long forms, menu-driven interfaces make it easy to minimize the amount of information on the screen at any given time.
The major downside of a menu-driven interface is that it is not always the most efficient approach to interface design. Users may need to navigate through multiple menus before they can access the functionality they need. An ATM interface could be more efficient if it let users walk up and tell the app everything it needs to know in a single step by saying something like, "I'd like to deposit a check into my savings account." But that would not be an example of menu-driven design -- it would be a natural language interface.
Natural language interface
A natural language interface lets users interact with the app using human language. For example, a modern search engine lets users enter simple, plain-language queries like "What's the capital of North Dakota?" Search engines don't require queries to include Boolean operators or special configuration data; they interpret input by processing natural language directly.
Because of a natural language interface's ability to accept input in whichever ways users choose to enter it, this approach -- when implemented well -- delivers the simplest, most consistent and most efficient user experience. Natural language design makes it easy to tailor a single interface to different users' needs because individuals engage with the app using whichever words make sense to them.
When paired with tools that can translate speech to text, a natural language approach enables users to input information using speech rather than a keyboard. For mobile applications, this is a critical advantage, because users can interact with your app on the go.
The major challenge in natural language design is that interpreting natural language queries requires sophisticated algorithms. And, when implemented poorly, it can deliver results that don't match the request.
Because of this limitation, this design makes the most sense when an app focuses on a specific domain or offers a limited range of functionality. In that case, it's easier to define the scope of possible queries that a user might enter and write algorithms that can interpret them effectively.
For example, consider a simple digital thermostat app that lets users set the temperature by talking into their phone. This would be a good candidate for natural language design because there aren't many words that the interface would need to interpret to determine user intent. A banking app that offers a range of functionality -- from checking balances to transferring money to paying bills -- might be more difficult to run through a natural language interface.
In a form-based interface, users enter data into a form to tell the application what to do. In this context, a form could be a literal form where users enter text, or an interface where users configure options by with drop-down menus and checkboxes. If you're a developer, you're likely accustomed to working with form-based interfaces in software tools. For instance, a network scanner might use a form-based approach to collect data it needs to start a network scan in the way you want.
The main advantage of a form-based design is that it's easy for users to send a lot of information to the app from a single interface. This makes it especially useful for apps that need to collect a lot of information to complete a users request.
For less complex tools, form-based design is often overkill. Users may feel overwhelmed when asked to fill out more than a half-dozen or so options at once or if they are unsure which values to enter. Plus, it's often hard to make form-based interfaces look elegant and to fit all the information on a single screen in a way that keeps it easy to read for users with accessibility requirements.
Forms are great option when efficiency is your highest priority and when you are building an application that is truly complex from the user's perspective. Simpler applications often work better with a different design approach.