User Experience Starting Point

User experience encompasses the visual appearance, interactive behavior, and assistive capabilities of software. The look and feel of your application is often as important as its feature set.

For example, an application with a great user experience should:

image: Art/userExperienceOSX.png

Contents:

Get Up and Running

Before you design a user interface or write any code, it’s a good idea to become familiar with the range of OS X technologies that influence the user experience. Many of these technologies are described in Mac Technology Overview.

Interface Builder is Apple’s graphical UI editor. To learn to use Interface Builder to edit the UI of an app, read Designing User Interfaces in Xcode in Xcode Overview.

All OS X developers should be familiar with Apple’s human interface guidelines for OS X. Read Apple Human Interface Guidelines to learn about the design principles that underlie all user-friendly software and the OS X user interface features that your application can take advantage of.

Become Proficient

To become proficient, you need to know how to implement the most important UI elements, such as windows, menus, and controls. Window Programming Guide explains how to implement windows, dialogs, and panels; Application Menu and Pop-up List Programming Topics explains how to implement menus. For information about sheets, read Sheet Programming Topics. Control-specific programming topics (such as Button Programming Topics) describe how to implement specific controls.

You may also want to became proficient in Apple style and usage and to familiarize yourself with accessibility topics. Apple Style Guide lists style and usage of Apple terms, including user interface terms that should be used in applications.

Accessibility Programming Guide for OS X walks you through several accessibility topics. Most commercial applications must have user interfaces that support alternative input devices, such as screen readers, Braille keyboards, and so on, for users with disabilities. Making your user interface accessible also allows you to use the accessibility API to run automated UI tests.

Sample Code

ButtonMadness: Creating and Customizing AppKit Controls demonstrates how to use the various types of buttons both using a nib file and programatically.

SpeedometerView shows how to make a custom view that can respond to mouse clicks.