According to Gartner, the Internet of Things is on a fast track to exponential growth. Indeed, the leading analyst firm predicts that the IoT will grow to an estimated 25 billion connected “things” by 2020. The industrial IoT (IIoT) is keeping pace as well, as GE Digital predicts the IIoT to include over 50 billion connected devices by 2030.
With this rapid expansion, connected embedded devices are a bit more complicated than the legacy M2M devices of yesteryear. What were once self-contained embedded devices with singular online connections are now complex and extensible systems with connected sensors, embedded devices, a cloud back-end and mobile clients. With so many sources of data, how do you merge them all together into one cohesive user experience and interface?
To answer this question, there are three key criteria that developers and organizations should strongly consider when building out their internet of connected embedded devices. These criteria are agility, adaptability and future-proofing. Let’s take a deeper dive into how each of these will help developers grapple with the sheer amount of data they must work with while building seamless UIs and applications.
As the number of IoT devices grows, so does the complexity and amount of software behind each device. Each device comes with its own requirements for connectivity, security and usability. For example, the vast majority of these embedded devices are built using the C/C++ programming language. However, as Figure 1 shows, the rate of growth in number of devices exponentially outpaces the growing number of C/C++ developers.
Figure 1: The growing number of connected devices will increasingly outpace the growth rate of the developer population. (Source: The Qt Company)
So how do developers keep up with the increasing number of data sources? By ramping up the availability of reusable software and by using better, more efficient tools (see Figure 2). A unified codebase with reusable software makes it simple, quick and more cost efficient to add new features, fix issues and improve overall usability. The wheel can only be reinvented so many ways before it becomes a burden on development time and resources. Instead of burning cycles recreating code for devices from scratch, developers should use the various tools at their disposal to reuse the same code framework in order to focus their efforts on more involved functionality. Not only does this make it easier for teams to onboard new developers, but it also reduces maintenance costs. Less time spent on back-end logistics means more time spent on the connectivity, security and usability your embedded device needs to be relevant in the IoT.
Figure 2: Reusable software with cross-platform code promotes productivity (Source: The Qt Company).
Industry-related verification and certification requirements and the technical limitations of embedded cross-compilation workflows also put a hamper on development speed. To combat this, the ability to distill your code down to one verified and certified codebase enables you to remain agile as you develop UIs for your embedded devices that can integrate data from multiple sources.
In order to keep up with the influx of data each embedded device receives, your software needs to adopt new technologies quickly, discard outdated features and make real-time iterations. Cross-platform functionality is vital, as data needs to be available and accessible regardless of which device is being used. Having that single, reusable code that translates across platforms is extremely valuable in this case.
On top of that, open source development software also plays a huge role in staying ahead of the data deluge, as it allows you to incorporate the latest updates into your code from an established community of developers. Open source developer communities are great for expediting iterations in real-time to your source code. This keeps your codebase updated with the latest software that will enable your devices to stay connected and secured while collecting data in their ecosystems.
Embedded development needs to not only be adaptable in cross-platform capabilities but also adaptable when considering the abilities of the developer. In order to address the aforementioned “too much code, not enough developers” issue from an adaptability standpoint, an important aspect to consider when building a product is the team you put together and the tools they have to best support their skills and capabilities.
For your developers, C++ is the most solid foundation of any embedded or IoT product, so having the best C++ API and tools available is already the best starting point. However, C++ is difficult to master, and not many outside the developer world know it well enough. Therefore, it’s important to be able to bridge the gap between C++ and other technologies, making it simple to incorporate graphics designs and other projects. For your team members who aren’t developers, a key to success is ensuring these team members are able to work alongside developers to interact with the product as efficiently as possible. To do this, having design tools layered on top of the developer’s C++ code will allow your designers and other team members to stay adaptable and perform at their best (see Figure 3)..
Figure 3: Tools that enable front-end and back-end developers to work together make it simple to incorporate graphic design and other projects.
As computers and sensors get smaller, smarter and more connected, in turn our embedded devices incorporate more functionality and become both more complex and intelligent. The only way to stay ahead of the curve is to shift the focus from hardware to software. As the IoT and IIoT continue to expand at a phenomenal pace, software will be the key driver that determines whether your embedded device thrives in an ever-growing ecosystem or falls behind as a siloed legacy device. This is especially the case when considering a device’s ability to be upgraded in a user-friendly and simple way.
With the proper focus on software, developers can efficiently maintain the security of their connected devices and continue to add value after initial deployment. Oftentimes, developers miss out on these opportunities to add value when they treat security as an afterthought. Regular software updates are important here as well, as fresh-out-of-the-box products quickly become outdated in today’s rapidly changing world. Without the proper attention to their OS, their app and their usage of frameworks such as Qt, developers will find that security issues can grow into a major problem, driving cost up and reducing software effectiveness.
Future-proofing your devices during the development stage means making them platform independent. Instead of relying on specific platforms for upgrades and maintenance, the cross-platform capabilities of a future-proof code framework will allow developers to take their applications anywhere: embedded, desktop and mobile. Should you want diversity between platforms, like a responsive UI design for different screen sizes, this is simple to implement with a cross-platform code as well.
So, What’s Next?
Reusable software, cross-platform capabilities and future-proof upgradeability are just a few ways to maintain your embedded devices’ ability to manage multiple sources of data in today’s IoT. As the IoT of embedded devices grows, the user’s experience and expectations evolve as well. The next article in this series will explain how agile, adaptable and future-proof development of embedded devices comes into play when creating cross-platform user interfaces. Stay tuned!