Published: July 27, 2022
11 min read
Last updated: January 31, 2024
In this article, you'll learn:
❓ How to Create an IoT Companion App: Where to Begin?
🛠️ BLE Specificities for a Companion App
📱 Inspiring Companion App Examples
⚙️ Our Expertise in Mobile App Development: Platoon Fit, SportPlus & Norsk
The IoT industry is booming, influencing various fields from vape devices and smart cars to complex security systems and healthcare solutions, including opportunities to develop a mental health app.
Yet, it’s not only about a device. Developing a stable and user-friendly IoT companion app is an integral part of the overall success. Even if you have a top-notch product from a technical point of view, yet, poor companion app development can ruin the whole user experience.
Basically, there are three main steps behind the IoT integration:
A smart collar concept for IoT applications (image by Faith Rosenberg)
In this article, we’ll share our tips & expertise on how to create a companion app for an IoT device. Also, we’ll address some BLE specificities for mobile apps along with the issue of hardware and software connectivity. Let’s dive into it!
First of all, let’s agree on what a companion app is. It’s a software solution that connects the user’s mobile device and your smart device.
As almost every person has a smartphone, the most convenient way for them to manage IoT devices is a specifically created IoT application. Whether it’s smart home devices, health monitoring, or managing simple LED lights, an app makes it easier for users to operate the IoT/BLE modules in connected devices.
The amount of generalized information often makes you lose your compass. What are the steps that should be considered for an IoT companion application development? Let’s figure out the plan:
Let’s take a closer look at each step!
First of all, gather all the required information about the IoT device(s) you’re building an app for, including data from beta testing phases. It’ll significantly enhance the companion mobile app development process if you provide the essential data from the start.
How do you know what kind of information you need to gather? Just ask your Tech Team as they’re the ones who’ll need it.
However, if you don’t have a Tech Partner yet, you can still start preparing. When working on companion app development projects, our developers usually ask for the following information — and that’s what you’ll be most likely asked anyway:
The information that may be essential is not actually limited to the list presented above. You may encounter many more various questions from your Tech Team, however, you shouldn’t be frightened. The clearer your answers are, the easier it is for your Tech Team to build the companion app you need.
Your Technical Team configuration is another thing you’d better start thinking about early on. There are a bunch of options to choose from that will really dramatically influence the success of the whole project.
On the highest level, this task has 2 main solutions — you either create your own in-house team or partner up with a remote development agency. Of course, there are many other smaller configurations in between: from outstaffing a single remote worker with special expertise to your in-house team to outsourcing a specific development flow. If you are considering how to build a companion app, it's crucial to evaluate the benefits and potential challenges of each approach.
To cut a long story short, we made a comparison table to highlight the benefits and potential challenges of each approach:
In-house employees share your corporate values & culture as well as have a better understanding of your business needs with time (however, the longer you work with your remote partner, the more this difference is smoothed)
The hiring process requires much more time & resources
Communication usually goes easier (as everything is managed within the company)
Less flexibility in almost everything: from changing an organizational structure to switching to different skill sets
Since all the data stays within the company, there’s less room for data leaks
High fixed costs (vacations, days off, workplace setup, etc.) that you have to pay
Supervision and monitoring can be conducted easier and more effectively
Continuous retraining and limited set of skills available at once
Remote Tech Partner
Quicker Time-to-Market as you don’t build the whole team from scratch
Possible cultural and time zones differences
Lower HR and management costs since you only pay for the number of hours spent on your project
Usually fewer monitoring opportunities
Wide range of expertise – you can pick the team that perfectly matches your needs
Higher risks connected with intellectual property access (if not well-managed in the beginning)
Set up any cooperation model that’s convenient for you and matches your internal business processes
As you can see, both approaches to team structuring have their advantages and possible pitfalls. Yet, it’s not about choosing between better or worse — different options just suit different contexts.
Remote Tech Partner can help you quickly deliver your MVP (Minimum Viable Product) to test your hypothesis and get funding without the need to spend much time & resources on building your own team. However, if you already have a stable income, a big scope of work, and a well-planned roadmap, it may be the right moment to start building your in-house team to stay with you for years.
With the assistance of your Tech Partner, select a suitable Tech Stack for your IoT mobile app. Your Tech Stack will depend on the platform (Android or iOS), the project’s technical requirements, desired set of features, etc.
While some tools are just necessary to enable the functionality you need, others can significantly speed up the development process. For example, we at Stormotion create companion apps with our magic React Native skill sets, using the react-native-ble-plx library. The set of features provided by this library contains RSSI readings, BLE device scannings, observing adapter states of the device, and so on.
In case you need to integrate a BLE device in an app you create using the React Native framework — check out the main things you should consider in one of our previous articles presented down below:
What to Consider when Integrating BLE in your React Native App
We at Stormotion have already delivered IoT/BLE companion apps for our clients. The range of products we’ve worked on includes exercise machines, boat engines, vaping devices, etc. Thus, we’d like to share our expertise and clarify some BLE specificities in developing a companion app, emphasizing our experience and insights into how to create a companion app.
Device and protocol
As a mess in documentation is a typical case during Bluetooth integration, the information there can often be incomplete or out-of-date. So instead of looking for assistance in official documentation that may not even be accurate, consider paying more attention to the device itself.
To avoid extra headaches, grant your development team physical access to an Internet of Things device and determine protocols for its communication. That’s the reason why there was a moment when you could find a boat engine battery right in the middle of our office 🙂
Extra research сompatibility
Extra platform research
In case you decide to make an extra Bluetooth Low Energy integration for another platform besides the mobile one, we recommend you research a little more about the specificities. For example, if a web integration is needed for your BLE module, you should be aware that not every browser is able to fulfill it yet. Basically, each platform has its own restrictions, and the best advice for your success is to thoroughly research the one you are interested in.
A small specificity that definitely shouldn’t be overlooked is data conversion for proper communication. To successfully operate the information sent by the device we need to convert it into a set of numbers. And vice versa, to operate the BLE device we need to make sure we convert the number into a base64 string. Even such a tiny detail as incorrect message conversion may cause a device not to respond at all.
Just as Bluetooth doesn't require an Internet connection to function, we highly recommend considering offline-support implementation for your app.
It’s important not to exceed limits both for the number and the frequency of the connections. Otherwise, that may worsen performance.
Keeping in mind these specificities will certainly make your experience with BLE slightly easier to predict as well as enhance the developing process of your project.
In this section, we’d like to showcase some mobile apps that may inspire you or even light a path for your upcoming projects, especially if you're looking to make companion apps for the outstanding IoT modules available in the world today.
August Home company offers upgraded solutions for customers’ door locks to achieve smarter home access and convenience. The August Smart Lock app provides the next set of features to its users:
🏃 Activity monitoring
Grants users the ability to track the door locking and unlocking at any time by any person with the help of a smart feed.
🔐 Access control
Clients can lock and unlock their doors whenever they want from anywhere.
👤 Guest access
Create unlimited digital keys valid for any custom amount of time. Thus, guests can have a keyless invitation to the house without worrying about the keys being stolen.
✅ Status updates
With the integration of DoorSense, it’s possible for users to check the door lock status to ensure the security of the house.
A convenient home security system integrated into your mobile phone (shot from the August Smart Lock App website)
One of the notable features is the auto-unlock system. With the help of a companion app, users are able to open their doors without the need of reaching for the keys the second they approach. With the help of Bluetooth, Wi-Fi, and GPS, the August app tracks your phone’s location and automatically opens the door as soon as you approach at the required distance.
The visualization of the August Smart Lock’s auto-unlock system (image August Smart Lock App website)
How does it work? There are two possible state sets for a user by the August App: Home and Away. Whenever the user is tracked being at home, the Home mode becomes active and the Auto-Unlock feature turns off. However, as soon as the user moves at least 200 meters away from home the Away state becomes active. In this mode, the lock will automatically open the door when the user comes close up to 5 meters to the doorway.
Another interesting project is a medical device for measuring a patient's metabolism REE (Resting Energy Expenditure). The innovative part is that the device represents a breathing mask that allows measuring the REE with incredible accuracy just from the breathing pattern. As traditional REE calculators give a general estimate based on a patient's parameters such as height, weight, age, and the frequency of activities, Breezing device makes gathered data more specific depending on the person's performance.
Internet of Things application lets Breezing users conveniently receive test results and make easy comparisons with previous sessions (image by Breezing App)
Firstly, the companion app for such a project had to have a patient’s sign-up page with clear further instructions on how to:
The main point of the app was to record the test results for every signed-up patient with further storing them in the cloud for clinical expertise.
However, besides the usual result dashboards, there’s a test history feature that was designed to compare three diagrams: estimated TEE (Total Energy Expenditure), MSJE (Mifflin St. Jeor equation), predicted REE, and measured REE. This decision allows patients to visualize and objectively compare their measurements with the estimates provided by other authoritative tests.
We at Stormotion have great expertise in creating companion apps for our clients. In this section, we’d like to share case studies of our IoT-related projects — Platoon Fit, SportPlus, and Norsk.
Alex Obe — the creator of Platoon Fit — is a fitness trainer that provides various guides and workouts for personal workout sessions. Despite emphasizing video content, Alex required a companion app for his platform that could track and conveniently transfer data from BLE sensors directly to the app’s interface. The required data includes cadence, heart rate, charge state, inhale numbers, etc.
Convenient media player combined with interactive categories and dashboards significantly enhances the user experience for Platoon Fit (shots from our portfolio)
In 24 weeks our team managed to achieve an enhanced user experience with interactive dashboards, video integrations, and fast data transmitting system from the connected BLE sensors. We created a companion app that fulfilled every customer’s requirement with a convenient data presentation and left no place for the unnecessary. To take a deeper look at our Platoon Fit case study you can click the link below:
Platoon Fit: Case Study
SportPlus is a notable project on Stormotion's IoT mobile app development services showcase. The company that offers home fitness equipment required a mobile application that would be compatible with all their physical devices. However, there was a challenge waiting for our tech team to solve. As provided equipment includes various exercise devices, each machine may use a different protocol to communicate, even despite the visual similarity.
SportPlus is another IoT project delivered by our team (image by Stormotion)
Our task was to deliver a companion app that takes into account every possible device protocol and is able to create unique sets of bytes to establish proper communication. The solution was to connect already existing mobile applications to the equipment to see the correct order and format for the bytes transmission. Thanks to this, we managed to take into account every protocol and successfully create a companion app for IoT.
Norsk Lithium is another amazing case study for a BLE-involved companion app that our team created. Based in the USA, Norsk develops and sells batteries designated for outdoor activities including open-water fishing, ice fishing, and camping. Despite these batteries being designated for the boats, they also do a great job charging your phone or powering any accessory you need.
The convenient interface of the Norsk companion app makes it impossible to get lost among the big amount of gathered data (image by Stormotion)
In this project, the task for our team was to create a companion app for these batteries with the integration of BLE modules. The app contains essential information to track the battery’s state along with the possibility to unite displayed batteries that are used in the same boat. The information presented in customized dashboards tells the client about the battery charge level, its voltage, temperature, rated capacity, etc.
Thanks to integrating BLE features, there’s also a possibility to track battery malfunctions. They’re further sent to tech support in order to get fixed in a nick of time.
In conclusion, we should point out one more time the brief plan on how to develop a companion app for your Internet of Things device:
Gather all the information about your module and app requirements.
Find a Tech Partner or build an In-House Team to help you meet your business needs.
Pick the suitable Tech Stack for the development with your Tech Partner.
Was it helpful?
Take a look at how we solve challenges to meet project requirements
For an Android app to work seamlessly with various IoT devices, the companion app development process must focus on integrating APIs that are compatible across multiple devices. This ensures that the app can communicate effectively with different brands and types of IoT hardware.
During the Android development phase (especially working with Android Studio) developers ensure interoperability by using universal APIs and protocols. This approach is integral to the app development process, allowing the app to function efficiently across different IoT ecosystems.
Of course, our development team assesses the hardware capabilities of these devices.
The design process for the app interface includes customization options to cater to the specific needs of businesses and consumers. This involves creating a prototype that reflects the desired look and feel, as well as the functionality of the app.
Yes, we can create additional features based on specific requirements. This might involve integrating advanced hardware capabilities like NFC or camera functions.
To ensure that the app’s performance remains optimal as more devices are added, our developers use strategies like efficient data collection and processing. This is especially important in cross-platform development, where the app needs to perform well on various types of devices.
For mobile development, the choice between native apps and cross-platform apps depends on the project's scope.
It depends on the approach you choose in development. Native applications provide high performance, while cross-platform applications offer broader coverage and often are more cost-effective.
In general, we specialize in cross-platform development using React Native, so if your IoT ecosystem is suitable for this, we will suggest this development option. However, if native development is better for your product, we will opt for that.
How to Build an IoT Application: The Way to Success
Bluetooth Low Energy FAQ: The Ultimate Guide on BLE Devices & iBeacons
Top IoT Security Challenges and How to Deal with Them
Our clients say
They understand what it takes to be a great service provider, prioritizing our success over money. I think their approach to addressing ambiguity is their biggest strength. It definitely sets them apart from other remote developers.
Max Scheidlock, Product Manager