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.
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.
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.
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