By interaction, we mean how users work with an application, which includes the following:
Change from mouse to finger interaction, that is, from click to tap
New mobile data input methods including popup keyboards
The need to provide user interaction feedback
Next, we will cover these interaction differences in a little more detail.
The following screenshot illustrates the Smartphone ArcGIS finger interactions that we just discussed:
Traditional web development is focused on mouse interaction, where a mouse is a high-precision device. Mobile web development is quite different, as it relies on touch or finger interaction instead. This is very low precision, particularly since we all have different sized fingers. Tapping a button can be problematic and requires that the selectable on-screen items be larger to ensure a good user experience. Map interaction is driven by a finger slide for pan and a pinch to zoom. Zoom sliders are often included in mobile ArcGIS apps and they also provide zoom functionality.
Data input relies on a screen-based, touch-driven keyboard. Usually, multiple keyboards are available; these are for character input, phone or numeric input, and date input, respectively. Voice is another potential source of data input for a mobile device. This provides new and interesting possibilities for mobile web developers.
For ArcGIS developers, the built-in GPS that is present on most devices means that current location, or geolocation, is a valuable new data source for use in any mobile application. Similarly, built-in cameras provide both video and still imagery, and these can help to enrich the data used or collected in an application.
Any interaction should provide users with obvious feedback. When a user taps a button or link, it is good if the item changes state.
For example, as shown in the following screenshots, a green-colored button with the label, 'Online', changes to red and the label changes to 'Offline' after a user tap:
Another good feedback mechanism is a loading animation. This is particularly helpful when loading maps: