User interfaces that work well on all devices

DZone 's Guide to

User interfaces that work well on all devices

· Web Dev Zone ·
Free Resource

This post argues that both Apple and Microsoft are wrong with regard to what user interface approach to use where. It also presents suggestions on how to implement user interfaces that work well on all devices.

Touch versus pointer

Apple versus Microsoft ( Windows 8):
  • Apple. Right: “People don’t touch their desktop screens”. Wrong: You must touch your screen when using your iPad with a Bluetooth keyboard.
  • Microsoft. Right: Support both touch and pointer modes. Wrong: “People will want to use touch everywhere”.
I’m with Apple in that on desktops, using a touch user interface is impractical: Your arms get tired quickly and moving your hands from the keyboard to the screen takes too much time. What Apple doesn’t see is that the same argument applies when using an iPad with a Bluetooth keyboard (for which it has excellent support). What is the solution for tablets? Make touch the default. If one uses a keyboard with a tablet, it must have a trackpad and the user interface must switch to pointer mode. That doesn’t have to mean much more that you now see a pointer and click instead of touch.

Phone versus tablet versus desktop

Apple versus Microsoft:
  • Apple: Right: Tablet user interfaces must be simpler than desktop user interfaces. Wrong: You need to completely reimplement a the user interface when going from phone to tablet to desktop.
  • Microsoft: Right: Striving for reduced complexity makes sense on desktops (and not just on tablets). Wrong: People want the complete desktop experience on a tablet.
There are three levels of complexity (and power) in user interfaces:
  • Small (cell phones): minimal complexity, support the most obvious operations.
  • Medium (tablets): moderate complexity, support 80% of the operations that users need.
  • Large (desktops, notebooks): high complexity, support all conceivable operations.
Each of these levels needs dedicated support, you cannot have the same user interface at all levels. Tablets being simpler than desktops is a feature. It enables non-technical people to use a computer with confidence.

How to implement cross-level user interfaces. That is a tricky one. Note that desktops can profit from a “simple mode” (tablet-like). Optionally, one switches to a an “advanced mode”. If we can figure out how to do that properly then my preferred solution would be to start with a simple mode and incrementally expose advanced features, on demand. Ideas for user interfaces that adapt their complexity to the current screen size are already out there:

  • Enyo allows webOS apps to scale their UIs.
  • Fragments are a mechanism in Android for splitting up a user interface so that the single fragments fit on cell phone screens, while multiple fragments can be shown on tablets.
Dedicated or universal devices? Apple advocates the former, everyone else (Microsoft, pre-Google Motorola, etc.) advocates the latter. Universal devices always sound nice in theory. In practice, cloud syncing has made dedicated devices a much better choice: Use several dedicated devices, sync between them and benefit from better usability, redundancy, and automatic backup.


A few more thoughts:
  • This post ignored “couch user interfaces” [1] where your screen is much farther away and you often have a remote control.
  • Two means of input were also completely ignored: gestures (Kinect) and voice (Siri). These have many applications, especially for couch user interfaces.

Related reading

  1. The three contexts of device interaction



Source: http://www.2ality.com/2011/11/adaptive-uis.html


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}