How to Develop a Companion App for Smart IoT Devices

Published: January 31, 2024

11 min read

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:

  1. Setting up an IoT or BLE (Bluetooth Low Energy) module and creating a device, this process often begins with IoT prototype development.
  2. Creating software for a smart device — a so-called “companion app”.
  3. Connecting the app with the module.
Smart Collar IoT development allows clients to track the activity of their pet along with monitoring its health habits via their mobile devices

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!

 
 

❓ How to Create an IoT Companion App: Where to Begin?

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:

  1. Gather the info for your Tech Team
  2. Find a Tech Partner for your project
  3. Select the Tech Stack that fits your business needs
  4. Consider taking assistance from well-known IoT platforms

Let’s take a closer look at each step!

 
 

Step 1: Gather the Info your Tech Team will need

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:

  • Number of different wearables devices you need to connect (most often, the answer is 1, but, for example, we had some projects where we needed to connect several different workout machines to a single fitness application).
  • The way your IoT device functions: the general description of how it’s used, for what purposes, how often it’s supposed to be used, the expected length of one session, etc.
  • Connectivity protocol that it uses to exchange data. The data exchange between a module and an app is achieved with the help of specified IoT protocols — the “languages” for proper machine communication. So in case you have several connected devices, it’s vital to determine every protocol for the data transmission
  • If there are several different devices to connect, describe both their features and differences.
  • Сommands your IoT device gives and receives.

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.

 
 

Step 2: Find a Tech Partner or create an In-House Team

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:

Team Configuration

👍 Advantages

💪 Challenges

In-House Team

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.

 
 

Step 3: Determine your project’s Tech Stack

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:

Read also:

What to Consider when Integrating BLE in your React Native App

As an existing analogue for an open-source UI framework there is Flutter that with the help of flutter_reactive_ble plugin grants you every aspect of functionality for your future application.

 
 

🛠️ BLE Specificities for a Companion 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.

Specificity

Description

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

As the variety of programming languages that you may select as your base is vast, we recommend doing extra research. The main points for the research are possible issues for connecting the module using the language you selected. For example, if you are willing to use languages like C or C++, it may differ the development process from how it would look like with JavaScript.

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.

Data Conversion

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.

Offline support

Just as Bluetooth doesn't require an Internet connection to function, we highly recommend considering offline-support implementation for your app.

Performance control

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.

 
 

📱 Inspiring Companion App Examples

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.

 
 

The August Smart Locks

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:

Feature

Description

🏃 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.

August Smart Lock IoT applications allow your mobile phone to be the security center of your house without any extra effort.

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.

GPS, Bluetooth, and the Internet connection make it possible for IoT applications to add convenience to users’ everyday life.

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.

 
 

Breezing

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 in healthcare creates incredibly convenient ways to monitor your health without the doctor’s assistance

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:

  • correctly calibrate the device;
  • prepare a patient for a Breezing test;
  • insert the cartridge into the device’s sensor slot.

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.

 
 

⚙️ Our Expertise in Mobile App Development: Platoon Fit, SportPlus & Norsk

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.

 
 

Platoon Fit 🏋️

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.

The more informative Internet of Things applications become the more effort should be put to visualize data in the right way

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:

Read also:

Platoon Fit: Case Study

 
 

SportPlus 💪

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 🚤

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.

You should avoid presenting too much data in one place as it makes mobile applications inconvenient and less attractive in terms of user experience for internet of things

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.

 
 

💡 Takeaways

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:

1

Gather all the information about your module and app requirements.

2

Find a Tech Partner or build an In-House Team to help you meet your business needs.

3

Pick the suitable Tech Stack for the development with your Tech Partner.

If you have any questions or need help with companion app development for your IoT/BLE product, let us know. We will be happy to help you meet your business needs with an outstanding product!

Contact us!

Questions you may have

Take a look at how we solve challenges to meet project requirements

Can the companion app work seamlessly with a variety of IoT devices and brands?

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.

How do you ensure interoperability between the app and different IoT ecosystems?

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.

Is it possible to integrate our existing IoT devices into the companion app?

Of course, our development team assesses the hardware capabilities of these devices.

What customization options are available for the companion app?

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.

Can you develop additional features or functionalities based on our specific requirements?

Yes, we can create additional features based on specific requirements. This might involve integrating advanced hardware capabilities like NFC or camera functions.

How do you handle firmware updates for IoT devices through the app?

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.

What measures are in place to ensure the app's performance remains optimal as more devices are added?

For mobile development, the choice between native apps and cross-platform apps depends on the project's scope.

Which mobile platforms (iOS, Android, etc.) will the companion app be compatible with?

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.

Do you recommend developing a native app or a cross-platform app for our IoT ecosystem?

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.

Read also

How can we help you?

Our clients say

Stormotion client Max Scheidlock, Product Manager from [object Object]

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

HUMANOO