When dealing with the Internet of Things (IoT), developers are faced with many technical hurdles connecting multiple devices together over a computer network. Each of these devices is likely to speak its own language and require specific code to translate data from the other devices. More device, more languages, more work, more money.
For example, let’s say you just bought a connected toothbrush. You get it all set up and decide to take it for a spin. According to the instructions, all you as the user needs to know is how to brush your teeth. There’s obviously a lot more happening within the device, however. As you brush, sensors are working to track things like battery power, usage time, and perhaps even motion with a gyroscope and accelerometer. Embedded code in the toothbrush, written in C, is used to track all of this data and upload it to the cloud. Then a cloud app, perhaps written in Ruby, accepts and stores this data while running some analysis on the motion and timing of your usage.
You set your toothbrush down and whip open your Android phone and fire up the app, eager to see your progress and get your brushing rating. Once again, there’s much more happening than meets the eye. Triggered by you opening the app, the Java code in the Android app fetches the data from the cloud and displays it on a nice graph for you….