At a recent dinner, I took part in a lively conversation about whether Apple will launch a new suite of home products. Imagine an iToaster, iMicrowave or even an iToothBrush – how would Apple re-imagine our common household appliances by combining its design aesthetic with relevant information? Since the dinner was filled with tech geeks, it wasn’t clear if people’s mouths were watering because of the food or the possibility of an iFridge.
The funny thing is this discussion wasn’t all that forward-looking. Right now we’re experiencing a new wave of app-enabled devices. Yet these devices aren’t computers, tablets or mobile phones; instead they’re cars, vending machines, kiosks, and point-of-sale equipment. In other words, everyday “things” are running apps that aim to make our lives better, or at least better synced.
Taking a cue from the Apple, Android and the new Windows 8 ecosystem, hardware manufacturers have realized that encouraging a vibrant developer network on their platforms is key to driving innovation and buzz around new devices. As a result, thousands of developers will introduce hundreds of thousands of apps that will run not only on computing devices, but also everyday appliances, creating what futurists have dubbed Internet of Things. This vision for a universe of Internet- and app-enabled objects promises a time when every person can control and interact with virtually every product from anywhere. Too much humidity in your basement? A sensor pushes a notification to your mobile device.
As this world begins to emerge, developers are being pushed to make an increasing number of upfront architecture and technology decisions that will affect the way they build software. A proliferation of devices forces developers to make two significant design choices before they build the next generation of apps. Specifically, developers must ask themselves:
In what language(s) should I develop my app?
If the future iFridge uses iOS as its base operating system, the Samsung equivalent runs on Android or some other Linux OS Distribution, and Whirlpool uses Windows, which OS should the developer build for?
How will I sync information across multiple “things” and also make the data available across apps?
If a developer is building an app that monitors the items in a refrigerator and needs to sync that data into multiple third-party apps (for example, a grocery list grocery list or “garbage can” app), how can the individual manage data flow across all these apps?
One way is through cross-platform app development frameworks and backend as a service platforms. Together this combination helps developers more easily build a new set of cloud-enabled, cross-platform apps that will run on the Internet of Things. How? Cross-platform app development frameworks allow developers to build their applications using standard web technologies and let the framework generate cross-platform OS specific binaries. Developers, therefore, don’t have to learn different programming languages or maintain code across different device platforms. This development paradigm continues to ease over time, as web technologies mature and performance characteristics of these apps improve on the native platform.
A complement to app development frameworks, backend as a service platforms make it easy for developers to setup and operate cloud backends for any type of app. Every backend feature an app needs is exposed as a REST API and provided through native OS libraries. As developers start rolling out apps that run across different platforms and things, core functions like syncing data, running business logic that acts on the data, and sharing data among other apps, is all made possible between the app and its cloud backend.
Companies like Cisco and Ericsson believe that there will be 50 billion connected devices by 2020. Developers who build apps that run on these devices will have to make technology decisions to make it simple for them to develop and maintain their apps on multiple platforms. At the same time, these apps will have to access and sync user and app data, take identity, location and other contextual information into account, and share information with other apps in a real-time fashion. Next generation app development for the Internet of Things is an exciting technology challenge to overcome, one that cross-platform app development and backend as a service frameworks plan to address.
Guest Post by Sravish Sridhar, Kinvey founder & CEO.