Touch UI

From S60 5th Edition onwards, the S60 platform supports touch-based interaction with the mobile device. In a touch user interface (Touch UI), the device screen is sensitive to the user's finger and the device stylus, which replace the physical keys of the device as the main navigation and software manipulation methods. This kind of UI enables a variety of design possibilities that are impractical in traditional keypad-based mobile applications.

Figure: Adaptive search in Touch UI

Touch UI interaction is supported by all LCDUI and eSWT components in devices that have a touch screen. If the device has a physical keypad and a touch screen, both can be used to operate MIDlets.

The differences in UI functions between touch and non-touch devices can be large and thus require different approaches to interface design. For example, a Touch UI -compliant device often has much fewer physical keys than non-touch devices so when a MIDlet is designed to work with Touch UI its design should not rely on hardware keys.

On some occasions, these differences may require you to design different application versions for touch and non-touch devices though usually a well-designed mobile application can be made to work in both touch and non-touch-screen devices. Guidelines for designing a Touch UI MIDlet can be adapted from desktop applications, which have a longer tradition with pointer (mouse) -based applications.

Some devices may have both touch screens and non-touch screens. In these cases the Java ME implementation checks whether the active display supports touch. This may cause problems in situations where, for example, Canvas MIDlets relying solely on touch events offer the user no method of interaction when the non-touch display is switched on.

Touch UI recognizes various user inputs such as touching, dragging and releasing. Different functions can be mapped to each of them.

To avoid the passive feeling of Touch-enabled UIs, you may use Tactile Feedback for improving the user experience.

Using Touch UI with LCDUI

You do not need to do anything special to get the touch functionality working for MIDlets when using high-level UI components. For low-level components such as Canvas and CustomItem however, Touch UI related functions need to be implemented in order to track the pointer input and enable touch integration. Pointer events are registered automatically but the MIDlet needs to handle the events with special methods.

Using Touch UI with eSWT

In eSWT, touch events are handled in a similar manner as mouse events in its desktop counterpart, the SWT toolkit. High-level eSWT UI components function automatically but low-level components, such as Shell, require that the MIDlet listens to and handles the events.

Extended information

For more information on using Touch UI, see Touch UI Implementation Notes

For more information on Touch UI devices, see S60 touch in Design and User Experience Library