Just as smartphones are being built with more and more sensors — for everything like movement, sound, temperature and touch — so the devices around your home will slowly begin to have the same. Soon, your fridge may have a barcode scanner so it knows when you run out of milk. It could then notify your car, which could in turn remind you if you are near a supermarket to pick up some semi-skimmed.
Granted, we’ve been talking about commercial ubiquitous computing for over ten years now but with more and more big companies getting involved, the range and choice of developer-friendly kit out there is vast. The barriers to entry are now low enough that you can pick up a few bits on Amazon and be coding your own omnipotent fridge in no time. (Wondering what you need to get started? I will show you a few choices at the end of this article.)
As an Android developer you are already coding for an IoT enabled device -your smartphone – but why should Android developers start developing the rest of the internet of things?
1. It will affect your job anyway
Android applications don’t do much without external input, they need to talk to things. With more and more devices becoming internet connected, the apps you write will communicate with them. You might think you get away with this because the devices talk to the server and you just obey the server. However, security and performance being high value requirements for mobile, potentially having your Android apps talk to IoT devices on local networks or pairing with them one on one are highly crucial features.
2. Barriers to entry (skills needed) are lower than ever
In the past to get started with the Internet of Things, you’d need knowledge of hardware protocols, networking, and board manipulation, amongst other things. While this knowledge is still valuable, kits now exist built specifically for beginners that aim to remove a lot of barriers. Super early adopters have created communities to support this and there is now a vast array of knowledge, blog posts and videos available on the internet to fall back upon. The IoT kits available (usually a starter board) also come with starter guides and walkthroughs allowing you to create a hello world morse code flashing LED in no time.
3. Early adoption allows you to mold and choose the direction
Understanding a technology early can help you become the ‘go to’ person at your company, you can have a big impact on the way the company technology is shaped. Early adoption can be hard, but like I said in the last point it’s not super early adoption; this adoption is more in terms of your company (or you can think of it as mastery of your own career), so you still have the internet to reference. Learning the hard way gives you a solid foundation of knowledge to pull from and when the technology evolves and advances you can understand why; because you were there pulling your hair out at those crazy nonsensical (at the time) bugs. You can have a direct impact on the direction and strategy and choice of IoT technologies that are used.
4. Google is doing it!
You know the old adage “You wouldn’t jump off a cliff just because everyones doing it” but Google getting into IoT means they believe there is a product space. Google have announced Brillo and Weave – low level technologies for communicating between devices and sensors – in an attempt to offer an standard for IoT. While many manufacturers are building IoT devices with their own protocols and stacks, this can mean devices incapable of communicating with one another. Google is pushing Weave (and Brillo as a platform) to be a standard protocol to allow communication and information sharing across manufacturers. This would mean a unified platform, a better experience for consumer and, hopefully, greater adoption. As a developer, this means a fun, potentially lucrative new product space.
5. You should always be learning
Knowing what’s around the corner keeps you on top of your game. Hey! Even if the internet of things doesn’t work out you will have learnt something. If the next big thing is Project Ara1 instead, you’ll still be able to apply what you have learnt about dispersed communication in IoT to Ara modules. As a developer, learning something new is never a bad thing and can only make you better at your job.
This blog post tried to show the potential value in working on IoT and that the entry barrier for Android developers wanting to learn about it is very low. I hope as an Android developer you can see the benefits in understanding and participating in creating hardware and software for the Internet of Things. Go forth and build!