With the promise of limitless applications, the Internet of Things has commanded the attention of developers and tech professionals alike. In fact, Google just announced that its new Brillo operating system is designed specifically to position Google as a key player in this burgeoning field. Brillo could help business users harness the Internet of Things with next-generation devices. But how can developers join the movement now?
Currently, developing an Internet of Things app can take years. Developers often have to start from scratch, slowing down the time to market considerably. And with the added difficulties of producing hardware, establishing secure and consistent connectivity, and communicating across multiple devices, innovating within the Internet of Things might seem out of reach.
Here are four IoT setbacks you can expect to encounter:
IoT devices connect over a variety of transport layers, use countless protocols, and support a variety of configuration options. Keep in mind that many devices will have small processors and low memory—even with Brillo promising to overcome that hurdle. Because this data travels over the Internet, getting your first device up and running with your new Internet of Things application is incredibly challenging.
To support connectivity, these applications must be highly concurrent. But concurrent application development is one of the most taxing disciplines in computer science right now. Most developers do not have experience writing concurrent code, making even the simplest Internet of Things application difficult to develop.
Poor Internet Infrastructure
Many countries have poor Internet and cellular infrastructures. Even in the U.S., network infrastructure lags behind its European counterparts, and as more connected devices enter the market and absorb more bandwidth, the current Internet infrastructure might not be able to keep up.
As more governments expose their online methods for combatting external threats, many consumers have become distrustful of connected devices and the apps we use to run them. That may impact the companies developing them. While some manufacturers are working to lessen the risk with embedded hardware security technology, these trepidations will not go away with hardware solutions alone.
Internet applications are practically limitless. Today, all developers can bring their innovative ideas to life using modern development tools and empowering languages. But to prepare your application architecture and infrastructure to weather the Internet of Things storm, consider these six steps:
- Fail fast. No one will get it right the first time. The faster you fail, the more quickly you can learn from your mistakes. Then, when the time is right, your app will be ready to shine. Look into languages and technologies that promote a rapid pace of development, like Google Weave.Google Weave, announced alongside Brillo at Google’s I/O conference in May, is a common language for devices that will streamline the process for development by allowing all devices in the home to connect and understand each other. While it won’t be out until the fourth quarter of this year, it may be beneficial to start researching and comparing it to other languages as more information about the communications standard is revealed.
- Think in terms of scale. You could have 10 devices connecting one day and 100,000 the next, so you need to be able to handle the load switch. And because the Internet of Things relies heavily on unbroken connectivity, you also need software that can accommodate updates without disrupting the user experience.Hardware used to be a limiting factor, but with new machines built for horizontal scaling (i.e., they can talk to one another), you can now minimize downtime. If possible, build your app on a NoSQL data store. NoSQL technologies allow you to scale up your application using commodity hardware.
- Use binary messages. If the device you’re planning to integrate supports custom binary encoding instead of ASCII encoding, use it. Custom binary-encoded messages significantly reduce your app’s bandwidth requirements, which lowers costs.
- Host your app in different geographic regions. If you can route data to a datacenter that agrees with customers’ sensibilities, you can provide faster response times and have some flexibility when dealing with privacy concerns.
- Choose a language or technology that enables rapid prototyping.Many apps are still being built in Java and C#, but these languages do not always provide the flexibility needed in the fast-paced environment of the Internet of Things. Languages like Scala, Clojure, and Ruby support rapid development due to their minimal syntax, REPL, and more advanced language features.
- Outsource what you can. Many new tools on the market can serve as the foundation for building your application. Some tools, for example, can give developers an easy way to make device messages JSON accessible through RESTful APIs, allowing you to focus on your project without diving into networking, parsing, or concurrency.
By locating the right tools, you’ll have much more time to focus on your big idea and deliver a superior user experience.
Unlike in traditional app development, the Internet of Things is still in its infancy, so few frameworks and prewritten code exist for you to draw from. Google, Samsung, and Apple have only just started announcing their steps toward making the Internet of Things a priority in their software and hardware development. Needless to say, building connected apps will take some ingenuity.
But do not let the challenges surrounding the Internet of Things deter you from capitalizing on its potential. Computer science has the ability to meet consumers’ connectivity demands. By diving into the pain points associated with the Internet of Things and researching solutions to combat these throughout your development journey, you can help blaze the trail for this revolution.