IoT and mobile app development go hand-in-hand. IoT changes the way humans interact with machines, and even how machines interact with each other — and the mobile app is often the gateway that makes this possible.
The rapid growth of the IoT market shows no signs of slowing down. Users are demanding smart devices and companies are responding in force. Many enterprises, meanwhile, are realizing the potential productivity gains associated with bringing existing devices and equipment online.
All of this growth has shifted the landscape for mobile app development, opening up new opportunities while adding more complexity to the mix.
So what’s different about developing mobile apps for IoT? What’s the same?
1. Connecting IoT Devices — Bluetooth in IoT
It might seem hard to believe now in today’s hyper-connected world, but when mobile apps first emerged, mobile app developers didn’t have to worry that much about connectivity. For example, an app that you used to log your workouts several years ago didn’t really need to connect with the internet. Everything depended on user inputs and interactions happening on the device itself. Similarly, mobile games didn’t need to connect to the internet, unless it was a multiplayer game where you’d need to connect with other players.
Eventually, though, users demanded apps with more sophisticated functions — like allowing you to collaborate on budgeting with your spouse. The app would have to connect to the internet so that users could interact with each other and so that the app could communicate information between disparate locations.
This new need for internet connectivity added complexity to the mobile app development process because it introduced more potential areas where the app can fail. You have to ask more questions during the development process, like: is this an action the user can do without internet access? If not, will they have internet access? Is the internet slow? Is that going to impact the user experience because the internet is slow? What should the app do if this action fails due to a poor connection?
Now, with IoT, Bluetooth is generally the way that mobile apps connect to IoT devices. (Though some devices will communicate with mobile apps via the internet, once they are initially configured via Bluetooth with the user’s WiFi credentials.) Regardless, Bluetooth is almost always a common factor in IoT applications.
Just like the internet did, Bluetooth has introduced even more complexity into mobile development. The core spec for Bluetooth is around 3,000 pages long, and while there are software libraries, they are often incomplete or buggy. Additionally, Bluetooth presents challenges when it comes to security. It’s generally a best practice not to send sensitive data via Bluetooth, but if you do have to do so (WiFi credentials for instance), the user flow for pairing with a Bluetooth device is an important consideration. There are multiple questions to answer. Will the user need to enter a passcode, and when? What happens if pairing fails?
It’s a challenge you have to work through as a product team, and as IoT becomes more ubiquitous and more devices come online, it’s something every programmer will need to become familiar with.
Here are a few best practices we’ve uncovered for dealing with all your Bluetooth woes:
- Give your users clear instructions for connecting Bluetooth
- Provide guidance on what to try when Bluetooth pairing fails
- Use encryption and authentication where appropriate
- If a factory-default passcode is needed, change it after the initial connection if possible
- Disconnect Bluetooth when inactive to reduce battery consumption
2. Designing for the IoT Experience
Another way that IoT has changed mobile development is in the design aspect. When it comes to IoT, mobile designers and developers have to think outside of the typical interaction between the user and the app. They have to consider the mobile application, hardware devices, and the surrounding environment or context. As the product life cycle progresses, how will the team make data-driven decisions? User interactions may need to be tracked across the mobile application and hardware devices to form a complete picture.
My own vision for IoT, which is shared by many others, goes back to the idea of ubiquitous computing — that we can use technology to deepen our interactions with the world and people around us. That means mobile app development should gradually become — and is already — not about an app at all. Instead, it should be about helping people to achieve their goals in the here and now, whether that’s nudging users towards choices that will benefit them, or automating a repetitive task that takes time away from more important activities.
3. Unlocking Huge Market Opportunities
All you need to succeed in business today is a great mobile app.
. . .
Okay, that’s obviously a hyperbole. Still, the last decade has witnessed countless successful businesses that started with well-designed, well-developed mobile apps that address human needs in compelling ways. When you add IoT capabilities to those apps, the potential for new revenue streams and productivity increases.
Think about it: with a simple mobile app that just connects to a server, there are only so many ideas and possibilities, and an increasingly crowded market for the attention of users. If you start incorporating other kinds of hardware into the mix, more opportunities to add value open up. You don’t just have a mobile app — you have a mobile app that’s connected to products in a smart home setting, or connected to sensors in a manufacturing line to tell operations managers about machine health.
Even if your app isn’t IoT-enabled from the start, you can look for ways to make it so. Creating an IoT application doesn’t always mean investing in your own custom hardware. You could also make your app compatible with hardware already on the market. Some existing IoT devices conform to open standards and protocols for communicating different types of data, like humidity data from a weather device or heartbeat data from a fitness watch. HeartyPatch is a great example of open-source hardware that can be leveraged from any application.
4. Making More Data-Driven Decisions
Humans make lots of decisions every day, and sometimes, we choose incorrectly. And it’s not because we aren’t smart or because we don’t have enough information. In fact, today we frequently have too much information and not enough insight.
IoT makes it possible to gather a wealth of data that businesses have never before been able to access. Therefore, it’s crucial when building a data-intensive mobile IoT application that developers collaborate with data scientists. (You’ll also want to partner with security experts to make sure you’re treating data responsibly.) Through machine learning and analytics, you can unearth the story your data is trying to tell you and narrow your choices to a set of a few great options, instead of a plethora of unknowns.
The breakdown above provides a high-level overview of how mobile development has evolved with IoT. As it continues to change, you’ll want the most experienced IoT mobile developers on your team. If you’re working on an IoT project and need some expert mobile development work, drop us a line today.