BLE App Development

    BLE app development for connected products

    Customers judge a connected product by its app: if pairing fails or an update bricks the device, the hardware gets the blame. Agnotic Technologies builds Bluetooth Low Energy companion apps that pair reliably, update firmware safely and behave the same across phones.

    iOS and AndroidFirmware updatesOwnership transferPhone test matrix

    Trusted by global innovators

    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve
    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve
    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve
    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve

    BLE apps

    What is BLE app development?

    BLE app development is building the iOS and Android app that finds, pairs with and updates a Bluetooth Low Energy product such as a lock, tracker, sensor or tool. Agnotic Technologies builds companion apps that follow each platform's permission and background rules, update firmware without bricking devices and work across many phone models.

    This page is for connected consumer and industrial products. BLE health devices that feed clinical records, and the GATT and pairing security basics, are covered on our BLE medical device integration page.

    Most BLE bugs come from the phone side: permissions, background limits and chipset differences. We design for them from the first sprint.

    Failure points

    Where do BLE companion apps fail?

    The failures we design against on every connected product app.

    Challenge

    Scans find nothing on Android 12 and later because the app never asked for the new Bluetooth permissions.

    Agnotic approach

    Declare BLUETOOTH_SCAN and BLUETOOTH_CONNECT, ask for them in context, and set neverForLocation when the app does not use scans for location.

    Challenge

    iOS suspends the app in the middle of a long transfer.

    Agnotic approach

    Use the bluetooth-central background mode and state restoration, and design transfers to resume from the last confirmed chunk.

    Challenge

    A firmware update drops halfway and the device will not boot.

    Agnotic approach

    Dual-slot images on the device, verified before the swap, with automatic rollback to the previous image.

    Challenge

    A resold device stays bonded to the previous owner's account.

    Agnotic approach

    An ownership transfer flow: a factory reset clears bonds and keys on the device, and the cloud record is released before a new owner claims it.

    Challenge

    Connections behave differently on one phone brand or chipset.

    Agnotic approach

    A test matrix across chipsets and OS versions, and connection settings that tolerate slower phones.

    Platform rules

    Which platform rules shape a BLE app?

    Both mobile platforms limit what an app can do with Bluetooth, and the limits change between OS versions.

    iOS

    • Core Bluetooth for central and peripheral roles
    • bluetooth-central background mode for work while the app is not on screen
    • State restoration with a restore identifier that stays the same across launches
    • NSBluetoothAlwaysUsageDescription text in the permission prompt

    Android 12 and later

    • BLUETOOTH_SCAN to find devices
    • BLUETOOTH_CONNECT to talk to paired devices
    • BLUETOOTH_ADVERTISE only when the phone advertises
    • neverForLocation when scans are not used for location

    Both platforms

    • System pairing flows, such as Android's Companion Device Manager
    • Background scanning limits that change by OS version
    • Battery settings users can change
    • Store review notes that explain Bluetooth use

    Firmware updates

    How should a firmware update over BLE work?

    A failed update is the most expensive bug a connected product can ship, so the flow assumes the connection will drop.

    1. Check before starting

      Battery level, current firmware version and signal quality are checked, and the update waits if any is too low.

    2. Download to the phone

      The signed image is downloaded and verified on the phone first, so a weak mobile network never interrupts the BLE transfer.

    3. Transfer in chunks

      Data moves in numbered chunks with acknowledgements, and an interrupted transfer resumes from the last confirmed chunk.

    4. Verify on the device

      The device checks the signature and hash of the complete image before it will boot it.

    5. Swap with a fallback

      The new image boots from a second slot; if it fails its self-test, the device returns to the previous image.

    6. Confirm and report

      The app reads the new version back and reports the result to your backend, so support can see each device's state.

    What do we build into a BLE companion app?

    Provisioning

    First-time setup, naming, and Wi-Fi credential handover for devices that also have Wi-Fi.

    Ownership and sharing

    Claiming a device, sharing it with family or a team, transfer on resale and revoking access.

    Data sync

    Logs and readings stored on the device, synced when the phone connects and deduplicated on the server.

    Firmware update management

    Staged rollouts by device group, using the update flow above.

    Diagnostics

    Signal strength, connection events and error codes that users can send to your support team.

    Device cloud

    The backend for accounts, the device registry and update management.

    Testing

    What goes on the phone model test matrix?

    • Phones from each chipset family your users carry, not only the latest flagships
    • The oldest and newest iOS and Android versions you support
    • Permission denied, granted once and later revoked
    • App in the background, app closed and phone restarted mid-session
    • Weak signal, interference and a device at the edge of range
    • An update interrupted at each stage of the firmware flow
    • Battery saver and manufacturer power settings switched on

    Which connected products do we build apps for?

    Smart locks and access control

    Lock and open flows that must work fast, offline and only for the right person.

    Item and asset trackers

    Background scanning and last-seen location within each platform's rules.

    Fitness equipment

    Bikes, rowers and scales sending sessions to the app, for consumer fitness rather than medical use.

    Industrial sensors and tools

    Configuration, readings and maintenance logs collected in the field by technicians.

    Consumer electronics and accessories

    Settings, firmware updates and registration for audio, lighting and home devices.

    References

    Platform and Bluetooth references

    Bluetooth Core SpecificationBluetooth SIGApple Core BluetoothAndroid Bluetooth permissionsCompanion Device ManagerOWASP MASVS
    Facts and sources

    Facts behind BLE apps

    Platform rules from Apple, Google and the Bluetooth SIG, each read on its source page.

    Scope and cost

    What drives the cost of BLE app development?

    We do not publish prices. These factors change the size of the build.

    Platforms

    Native iOS and Android, or a cross-platform app with native Bluetooth modules.

    Protocol and firmware access

    How complete the device protocol documentation is and how quickly the firmware team can ship test builds.

    Firmware update requirements

    Signed images, dual slots, staged rollouts and reporting.

    Device models

    Each hardware revision adds protocol differences to handle and test.

    Backend scope

    Accounts, device registry, sharing and update management.

    Test matrix size

    How many phone models and OS versions must be covered before release.

    Frequently Asked Questions

    It depends on the platforms, how complete the device protocol is and how many hardware revisions you support. We agree a first release on the scoping call, usually pairing, core control and data sync.