Skip to main content
Mobile · 5 min read

Designing Mobile Companion Apps for IoT Hardware

Why most IoT companion apps disappoint, the patterns that make them feel native, and the engineering decisions that decide whether your hardware ever gets recommended.

#Mobile#BLE#Companion App#iOS#Android

The companion app is where users decide whether your hardware is good. The hardware can be brilliant; if the app is slow, fragile, or unfriendly, the product is judged by the app. Here is the engineering pattern that produces apps people recommend, not endure.

The first 60 seconds decide everything

The hardest part of an IoT companion app is the onboarding flow — pairing the device, naming it, getting it onto the network, demonstrating that it works. This window decides whether the user becomes a customer or returns the box.

The design constraints:

  • Forgiving of permission denials. iOS and Android increasingly require granular permissions for Bluetooth, local network, location, and notifications. Each permission denial breaks the flow. Plan the recovery path for each.
  • No assumptions about user expertise. Customer demographics span a wide range. The flow has to work for the technical user who turns off Bluetooth scanning to save battery, and for the non-technical user who has not opened settings in years.
  • Fast. A user staring at a “searching for device” spinner for thirty seconds is a user who switches to a competitor. Aggressive timeouts and clear error messages beat slow, vague waits.
  • Resumable. If the user gets distracted halfway through, they should be able to come back and pick up where they left off. State machines, not linear flows.

The teams that get onboarding right run usability tests on it specifically — separate from the rest of the app, with users who match the actual customer demographics, with the actual hardware, in environments that match the customer’s home.

BLE-specific pitfalls

If your device is BLE, you will face a category of problems consumer-app teams do not see in cloud apps:

  • Background limitations. iOS and Android both restrict BLE operations in the background. A user who closes the app and locks the phone may get no telemetry until they reopen. Design notifications and sync flows accordingly.
  • Bluetooth state changes. The user toggles Bluetooth, the airplane mode flag, the device’s range. Your app’s state machine must handle each transition gracefully.
  • Multiple devices. A user with three of your products has three BLE connections to manage, with different connection priorities and possibly conflicting GATT characteristics. Plan for this from the start.
  • iOS UUID restrictions. iOS does not let you scan for arbitrary peripherals in the background. Service UUIDs in your advertising packet are how the OS associates the device with your app. Choose them carefully and document them.
  • Connection parameters matter. A connection interval optimized for low latency burns the device’s battery. One optimized for battery introduces user-visible lag. Tune deliberately, per use case, and expose a debug view to your QA team.

Offline is the default state, not an edge case

A companion app for IoT hardware operates offline most of the time. The device is in range; the cloud may or may not be. A design that requires a cloud round-trip for routine actions is a design that fails when the user is most likely to be using the product — when they are home and the Wi-Fi is misbehaving.

Patterns that work:

  • Local-first state. The app’s source of truth is what it has heard from the device. The cloud copy is a backup, not the canonical store.
  • Optimistic UI. When the user taps to turn on a light, the UI confirms instantly. The actual command runs in the background and reconciles state.
  • Sync-on-reconnect. When the network returns, queued actions and updates merge cleanly. CRDTs help; well-designed conflict resolution suffices for most cases.
  • Visible degradation. The user knows when they are offline. Indicators are subtle but clear. Surprises come from invisible degradation, not visible.

Accessibility is product-defining

A consumer IoT product reaches a wide audience. Some of those users have low vision, motor impairments, or other accessibility needs. An app that works for them is not a niche feature; it is a quality bar.

The minimums:

  • VoiceOver and TalkBack support throughout. Every interactive element has a label that makes sense out of context.
  • Dynamic Type / Font Scaling works without breaking layouts.
  • Sufficient color contrast. WCAG 2.2 AA at minimum, AAA where it does not impede design.
  • Haptic and audio feedback complement visual cues for users who cannot see them.
  • No reliance on color alone to convey state. A red icon and a green icon must also differ in shape or label.

The investment is a few percent of total engineering. The return is a product that earns recommendations from users who would otherwise be excluded.

Diagnostics and support

When something goes wrong with the device, the app is the customer’s first line of recourse. What it should provide:

  • A self-test flow that exercises the device and reports specific failures.
  • A “send diagnostics” button that ships logs, recent telemetry, device firmware version, app version, OS version, and a user-typed description to support — encrypted and only with explicit consent.
  • A factory reset path that walks the user through, with safety prompts.
  • A troubleshooting guide in the app, contextual to the current device state.

Without these, every support call starts with twenty minutes of “what version are you running?” With them, support resolves cases in a fraction of the time.

What good looks like

A companion app that lifts the hardware product:

  • Onboards a new device in under two minutes for 90% of users.
  • Works fully offline for routine actions.
  • Renders the device’s state in real time when in range, gracefully when not.
  • Uses background BLE / push notifications without burning battery.
  • Has a self-diagnostic flow that resolves most support calls.
  • Meets WCAG 2.2 AA throughout.
  • Is small, fast, and respects the user’s data and battery.

If you are building a companion app for hardware and the onboarding flow is where most user friction lives, we have shipped this kind of app many times.

By Diglogic Engineering · January 8, 2026

Share

Ready to ship

Let's get started.

Tell us about the problem. We come back within one business day with a clear path, a timeline you can plan around, and a fixed-scope first milestone.