Challenges and solutions
Learning objectives
- You know the some of the challenges and solutions related to device-agnostic design.
Challenges
Device-agnostic design is hindered by a plethora of challenges, which stem from the vast range of available digital devices. The devices range from personal computers to laptops and from mobile phones to smart watches. Even smartpens can be a part of a device-agnostic system (see e.g. Livescribe), similar to a wide variety of control applications such as applications used to access and display car information on mobile phones and tablets (see e.g. Lightware Technology).
In a device-agnostic design project, the following challenges are to be expected:
Handling different types of inputs -- there exists a range of physical and virtual keyboards, touch input options, gesture inputs, and audio and visual recognition capabilities for providing input.
Handling different types of outputs -- there exists a range of physical and virtual displays, speakers, and haptic feedback devices for providing output.
Handling different network capacities -- designing for networks from old slow serial protocols to terabit networks, and from short range NFT and Bluetooth conectivity to globally (almost) ubiquitous 4G cellular networks with speeds up to 450MB/s.
Handling different screen sizes -- the differences in screen sizes are vast, ranging from a tangible physical desice (such as the mentioned smartpen) that may have only a single power led, to modern mobile phones and computer dislays that reach over 500 PPI (pixels per inch) and high-end displays that are about to move from 4K resolutions (4096x2160) to 8K resolutions (8192x4320).
Handling outdated or even hostile browsers and devices -- users do not always use the latest versions of web browsers and the update process for mobile devices is notoriously slow, even for the latest flagship models. Even network infrastructure such as routers and wireless base stations are recommended to be upgraded at least every three to five years, which seldomly happens.
In addition, the capabilities of devices also differ, as some devices may have limited processing power, memory, and graphics capabilities, while others may have more advanced capabilities, not to mention the differences in battery life. Finally, users may also access content in different contexts, such as on-the-go or in a quiet environment. This can make it difficult to create a design that works well in all contexts.
These challenges can make device-agnostic design a complex and time-consuming process, requiring careful consideration and planning. In practice, device-agnostic design projects typically limit the scope to match only specific requirements that can be inferred e.g. from the context of use.
Solutions
Most of the solutions for the above challenges are related to considering the requirements of the end product. Leading questions include whether it is necessary to support all the available devices, whether all the functionality offered by the devices are needed, and to what extent the quality and complexity of the functionality could be lowered without a significant negative impact on the user experience. Broadly speaking, the solutions could be divided into simplification and prioritization of design and functionality.
When considering the simplication of design, a meaningful starting point is to remove features that are not worth the effort and consequently to manage the size and loading time of the application. Here, approaches such as flat design and scalable design may help. With flat design, one would avoid graphics that require specialised hardware (e.g. 3D graphics) and utilize basic color schemes without gradients and shadows. With scalable design, on the other hand, one would create designs that adapt flexibly to various pixel densities, and if applicable, use efficient graphics formats such as scalable vector graphics (SVG) instead of raster formats (PNG, GIF, JPG).
Similarly, with prioritization, one would consider the most important features and functionalities and focus on those. This can be done by considering the most common devices and the most common use cases, and by considering the most common user groups and their needs. For example, if the application is used by a large number of elderly people, one would consider the use of large fonts and simple color schemes, avoiding complex animations and transitions. For priotization, there are a range of approaches, such as user first, content first, mobile first, and fat finger first.
User First
- Think of the users, usability and user experience
- Will the system be usable, accessible, inclusive, effective, and enjoyable to the target users?
Content First
- Think of the content and the context of use, accounting for the devices and users
- Will the content be readable even on the smallest device that the target group will have at their disposal?
Mobile First
- Almost 60% of web site traffic comes already from mobile devices
- Consider starting the design by targeting mobile devices and then expanding to other devices
- Progressive Advancement vs. Graceful Degradation
- Will you assume simplicity and build towards more complexity?
- Or, will you embrace high complexity and seek solutions to make it work with limited resources?
Fat Finger First
- Think of the interaction with the device, again accounting for the devices and users
- People are poking and swiping at everything nowadays -- do not design for touch interaction retrospectively!
- Will the system be usable with a fat finger, a fat thumb, or a fat toe?