Apr 04, 2018The Internet of Things (IoT) offers both new opportunities and challenges to developers. Just as the last decade saw a boom in mobile application development, in which talented developers hit home runs with things like fitness and e-commerce apps, the next decade will belong to IoT developers.
In order to ensure the success of an IoT development program, a company or developer should step back and assess its overall development strategy before diving in. While the question of what, exactly, is the ideal IoT software development kit (SDK) is being debated, developers can still compile a short list of the most important components.
Because IoT technology draws upon multiple technologies—geolocation, mobile, big data and business intelligence, to name just a few—the nature of an IoT SDK is complex. The technology community has responded, with organizations such as Microsoft and the Linux Foundation putting forth recommended development platforms for the IoT. Developers must decide for themselves which approach is best for them.
What does the optimal IoT platform really contain?
An Open API
We might all agree that the heart of an IoT platform is an open application programming interface (API). A quick jump to GitHub brings us to the OpenAPI Specification, which is described as "a community-driven open specification within the OpenAPI Initiative, a Linux Foundation Collaborative Project."
An open API is central to all IoT development, because IoT development is, at its essence, about connectivity. The OpenAPI spec enables developers to knit together the various technologies behind the IoT, and to link the IoT devices and the data they collect back into larger big-data repositories, and the analytics programs that make sense out of all the IoT data. They can then up-source those insights to enterprise applications, such as supply chain systems, e-commerce applications, or the telecommunications or energy applications that drive public utilities.
Open Source Framework
A second "must" for an IoT SDK is an open-source framework. Building on open-source components helps drive down the cost of IoT development, while simultaneously preventing an IoT application from being locked into a proprietary software stack. It also guarantees greater transparency, which will be an important factor for the security of IoT devices and networks as this technology becomes more pervasive.
For consumer-oriented IoT devices and applications, multi-language and multi-device capabilities are highly desirable. Multi-language capabilities will ensure that a product or service being developed has global potential. Even if an application, such as a tracking device for bicycles, is developed first in the United States, its developers should anticipate its adoption elsewhere and future-proof their invention with the ability to sell it in Europe, Asia or anywhere else that bike enthusiasts could benefit from it.
Developing for multi-device mobile devices is a bigger challenge, but it, too, is crucial for consumer adoption. For example, your bike-tracking application will be most successful if consumers can use it on their preferred device. Some people may want to track where their kids are playing via a cell phone, a smartwatch or even their car.
According to the Verizon Mobile Security Index 2018, "Companies are sacrificing mobile security for expediency and business performance." Can we assume that these attitudes will extend from mobile devices to IoT devices, too? Will performance trump safety in a rush to produce the most compelling IoT applications? I certainly hope not.
However, global IoT security standards have yet to be adopted. Therefore, it's important to adopt local standards and attempt to build IoT devices that deliver the optimal amount of security possible on day one.