How to Develop a Companion App for Smart IoT Devices

Published: January 31, 2024

11 min read

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:

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.

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.

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:

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