ABSTRACT

It is a cliche that the implementation of user interfaces, especially those relying on graphics, is a bane to programmers. The interface must handle a diverse set of interaction techniques involving multiple input devices and contexts, driven by the actions of notoriously asynchronous humans and usually requiring real-time feedback. In addition, the programmer must deal with how a piece of the interface works internally, how the piece connects to other parts of the interface, and how the interface connects to the actual application, all the while treading water in a vast sea of graphical details.