Building meaningful apps for the Internet of Things
Recently a fresh round of exciting wearables have been announced or shipped by large device manufacturers like Apple, Motorola, LG, and Samsung. These gadgets present new opportunities for developers to expand their existing apps by developing new user experiences. The user experience (UX) change can be subtle, but very impactful.
As an example, I've been using a watch wearable for several months with the primary function of tethering to my device and presenting notifications such as messages or phone calls, which at the surface seems like a small UX change. However, the benefit has been surprisingly tremendous. Previously, during evening walks with my wife, every single notification from my mobile device resulted in a reach into my pocket, flip open of the folio, swipe down on the notification, eyes transfixed to a 4in screen, to get to a message that 9 times out of 10 just wasn't that urgent. With this watch wearable I simply take a quick look at the notification from my wrist, the mobile device stays in my pocket (90 percent of the time) and I stay engaged in our conversation. Oh and I can use it to get the time too!
Wearable gadgets like these are going to transform humanity and our interactions with our environment and one another. With the thousands of gadgets and wearables that comprise the Internet of Things (IoT), developers can have a real impact on not just individuals but also business.
These wearable gadgets are the most high profile class of gadgets being coined as the IoT and the canonical use case would be mobile health, where biometric data can be gathered to keep us informed of our current health. These IoT gadgets are transforming other whole industries as well such as manufacturing, point of sale and retail, and scientific/engineering fields.
In this increasingly connected world, one of the biggest challenges developers face is how to extend the user experience of their existing applications beyond the desktop to new gadgets, devices, and form factors, and expand existing applications into modern solutions. This challenge extends well beyond simply connecting to and interacting with these new IoT enabled gadgets to bringing together other components for a complete solution that does something meaningful.
Developers building IoT apps are concerned with connecting to and talking with individual gadgets they are integrating, but there are other areas of interconnection to consider too when building a compelling IoT enabled app; namely, device to gadget, device to cloud, and device to backend. In this way, the device becomes the center of a new topology for connected apps.
A device is defined as a system with a CPU, memory, I/O and an operating system that can host graphical apps, so it can equally be a mobile phone device or a desktop device. A connected app used to mean a client that connected to a backend server through middleware, which presented a linear topology. Figure 1 demonstrates a new topology with the device interacting with IoT gadgets/wearables, cloud services, and enterprise or database driven backends.
The devices become the center of the topology
This connected app approach through the central device enables all of the critical systems that we interact with daily. From cloud services, like social networks, to enterprise or data that lives behind a company firewall, to these new UX gadgets delivered by IoT. In this topology, the developer becomes increasingly important in delivering whole, integrated solutions to his customers. Apps now live across several disparate systems and developers need to glue it all together into a seamless experience.
So the first challenge is connecting to an IoT gadget. IoT gadgets can connect to a device with several technologies but usually either Bluetooth or Wi-Fi (internet on the same domain). The method of interaction is typically one of three ways, with a simple Bluetooth profile, a REST server, or a full app (like an Android app). Each of these mechanisms presents differing levels of data interaction and complexity. Most gadgets will provide a Bluetooth connection.
The second challenge is presenting that data on the device itself. This means writing, at a minimum, an iOS and an Android app that can connect to the gadgets to create user interfaces that best utilize the form factor on which they run. For example, utilizing the additional real estate on a tablet form factor in landscape mode vs a phone device in portrait mode.
The third challenge is sharing that information with cloud services, like social networks or mobile backend as a service (MBaaS) providers, like Parse, Kinvey, or App42. These cloud services usually present REST APIs to the developer. Depending on the type of information to share, some of which may be sensitive (as is likely the case with mobile health apps), developers have to work with secure protocols and user authentication mechanisms.
The final challenge in this new topology is working with enterprise or company data behind a firewall and sitting in an SQL database. Again REST presents the most scalable and robust solution, particularly in interacting with mobile devices that could easily lose a carrier signal while in transit. This means using REST-based middleware that can talk with another backend tier, which hosts the actual database.
Using a mobile health example, let's walk through a future scenario. Imagine a patient with a newly discovered heart issue. He is asked by his health provider to wear a heart monitor and a blood pressure monitor and report that information regularly. A developer provides a system that connects to those gadgets, presents that information to the patient on his device, shares that information securely with his health provider, and makes close family members aware of his condition. A few weeks later, as all those pieces have been working together for several weeks, he suddenly receives a notification on his device from his medical provider to take an aspirin and get to an emergency room -- he is about to have a heart attack!
Close family members are notified to meet him at the hospital for treatment. The emergency room is provided several weeks' worth of biometric data to assess his condition and provide a timely treatment to save his life. His family members arrive to find a smiling and thankful husband/father.
This is just one of thousands of transformative experiences that IoT gadgets will enable over the next several years. Developers will be faced with more challenges than ever to build these connected apps that integrate the various components to build cohesive solutions.
They are the agents of change and while this modern topology can guide developers to build fully integrated solutions, they must carefully consider and adopt the right tools to bring it all together.
John Thomas is director of product management, Embarcadero Technologies
Published under license from ITProPortal.com, a Net Communities Ltd Publication. All rights reserved.