An application user interface (UI) serves two main purposes: to receive user input and to provide user output. How well your application handles these tasks depends on the target hardware platform capabilities, operating system (OS) configuration, and input/output (I/O) requirements.
Before designing your application, you need to ask some important questions about its interface:
The Windows CE OS supports a range of devices, from the Handheld PC (H/PC) to embedded systems. Its modular feature design enables you to create applications that are suited for a specific platform. Because UI requirements vary, this section describes general design considerations for a graphical UI.
A well-designed UI focuses on users and their tasks. Good UI design considers general design principles as well as how graphics, color, and layout influence application usability. Consider the following design concepts when creating a user-focused UI:
Enable the user, not the computer or software, to initiate actions. Remember, the goal of the user is not to use the application, but to accomplish a task.
To increase familiarity with the interface, enable users to manipulate representations of the tasks they perform. For example, if you provide a desktop-like interface, enable users to drag icons depicting documents to an icon depicting a trash can when deleting a file. For other types of interfaces, be sure that buttons and icons relate to the tasks they perform. For example, display a wrench icon to start an automotive maintenance application.
Another way to increase user familiarity with the interface is to avoid using modes. Modes, which occur when identical commands or keystrokes perform different actions in different situations, force users to think about how the application works instead of the task at hand. Though modes are best avoided, warning boxes and message boxes are two necessary and appropriate mode types.
Consistency makes the interface familiar and predictable, which reduces user errors and improves performance. Consistency is enhanced with components that have a similar appearance and behavior and with actions that have the same result regardless of context. For example, in a desktop environment, scroll bars operate the same way, whether the scroll bar is in a list box or window. To achieve consistency, reuse standard commands in each task.
Empower the user to explore the interface through trial and error, but provide warnings about potential damage to the system or data. To minimize user problems, provide clear error messages and indicate appropriate actions to recover from an error. When possible, make actions reversible or recoverable.
Present the user with timely visual and audio cues to confirm that the software is responding to input.
An attractive interface helps the user select appropriate information and suggests a quality application.
Simple interfaces, with an uncluttered display, are easy to learn and use. Show the most important controls directly on the interface and hide the rest in menus. Reduce the number of tasks presented in a single window or screen and group related tasks together.
Provide multiple methods for performing an operation. To accomplish this, support multiple input devices if possible, and provide keyboard shortcuts or accelerators for specific tasks, if a keyboard is supported.