Three things to consider when developing embedded UIs for the IoT

June 19, 2017


Three things to consider when developing embedded UIs for the IoT

With no signs of the IoT economy slowing down--IHS Markit reports that we'll hit over 75 billion devices by 2025--the challenge for embedded developme...

With no signs of the IoT economy slowing down—IHS Markit reports that we’ll hit over 75 billion devices by 2025—the challenge for embedded development teams is figuring out how to modernize legacy systems and create new ones that leverage the latest technologies to meet user expectations. It comes down to squeezing the best functionality and performance out of a dizzying array of platform architectures, operating systems (OSs), and software stacks, while delivering simple, beautiful user experiences (UX) that drive user adoption and brand loyalty.

Forbes is quoted as saying, “Every dollar invested in UX brings $100 in return. That’s an ROI of a whopping 9900%.”

Understanding why user interface (UI) development is challenging for IoT systems helps define solutions to those challenges. Let’s look at three aspects that affect all IoT verticals, from consumer to medical to the Industrial IIoT.

Whether building devices for the connected car, smart home, or the IIoT, you’ll need to select and support more than one environment, from hardware to software. It could be something as simple as supporting the last two versions of an OS, or as complex as building out an end-to-end solution ranging from microcontrollers to microprocessors.

A consistent and standard UI across all products is essential to reduce user frustration and increase brand loyalty. Consistency limits the ways in which user feedback is presented and operations performed, ensuring that users don’t have to spend time figuring things out as they move from device to device. A standard approach to tasks eliminates confusion, lessens the learning curve, and makes it easy to switch between—and purchase—different devices.

Embedded UI tools struggle with this, either limiting support to a narrow range of platforms or offering customizability but making the porting process too difficult to be feasible. Even if they do support a broader hardware range, such as some modern widget toolkits, it’s difficult to customize the look and feel of the UI and most teams opt for tuning performance rather than UX.

As more devices connect with each other, exposing new features and data, there’s opportunity for manufacturers to add value to their products. The first fitness trackers, for example, were standalone devices, requiring a USB cable to offload data. Now, you can wirelessly connect many different types of sensors (step, heart, sleep, etc.) to your smartphone and a single UI presents data, analysis, and even predictions in the blink of an eye.

The growth in connectivity impacts UX in two ways. First, with more data available, the interface to control, manage, and share information gets complicated very quickly. It’s up to the development team to simplify this complexity and avoid user confusion, presenting options in a clear, intuitive manner.

Second, the rapid pace at which new capabilities are added means UI updates have to keep up with or, ideally, lead the industry. For connected IoT products, it’s important to minimize the time to release, while maintaining quality and reliability, and make use of over-the-air (OTA) updates to refresh the UI where possible.

The race to capture the in-vehicle infotainment market offers a good example. Automotive OEMs recognized that smartphones offered a faster, more adaptable path to better user experience than continuously replacing the software entrenched in vehicles. Thus, Android Auto and Apple CarPlay have taken off. These platforms give users the most up-to-date features with little to no barriers. Now, OEMs are bringing that rich, feature-packed experience to instrument clusters; analog dials and warning indicators are being replaced with full-screen digital graphics.

Another example is Airbus, whose “Factory of the future” brings together many connected devices to realize time and quality advantages through automation, robotics, mixed reality, and more. These disparate, yet connected, systems require UIs that are engaging, easy to use, and quick to update.

It’s fair to say that most embedded devices fall far short of the smartphone experience. While it’s valid to point the finger at development constraints due to legacy code, hardware limitations, and lack of OTA updates, it’s equally fair to say that UX hasn’t been as much of a priority for embedded devices as it has been for mobile. Here are three simple reasons why:

  1. Rather than bring on experienced UX/UI skillsets, design is often left to developers
  2. Teams would rather focus on integrating, testing, and optimizing the underlying software rather than building bold and beautiful UIs
  3. For teams with designers, there’s a separation from development, causing communication, workflow, and technical barriers between design intent and code

Of course, not every UI must present a smartphone experience. Sometimes a water dispenser is simply a water dispenser.

Smartphone and desktop OS manufacturers have proven the answer to this embedded UI conundrum with two simple rules: design must be treated as equally as important as code; and designers and developers are equals.

By building in the skills, processes, and tools necessary to have designers and developers work side-by-side, teams enable themselves to deliver the best UX possible (built by those experienced in the art of personas, design, and user validation) on top of applications that are feature-rich and perform well (built by those experienced in algorithms, data management, networking, and optimization).

Jason Clarke is a co-founder and vice-president at Crank Software. He has over fifteen years of experience in embedded development, including consumer electronics, automotive infotainment, industrial, and medical devices.

Jason Clarke, Crank Software