Skip to content

Service

Bluetooth and NFC apps that hold up in the field

Connecting to a device in a demo is easy. Keeping the connection alive on a building site, with the phone in a pocket and the battery at 12 percent, is the part that takes experience. I build the apps that talk to hardware and keep talking to it.

What this covers

  1. Pairing and connection states

    Scanning, pairing, reconnection and a connection state machine the rest of the app can rely on, instead of callbacks scattered across screens.

  2. Live data streams

    Reading notifications and characteristics, parsing binary frames into typed models, and showing live readings without freezing the interface.

  3. Background and battery

    Staying connected while the app is in the background, waking up on reconnection, and keeping the battery cost reasonable on both platforms.

  4. NFC tags and MFi accessories

    Reading and writing NFC tags, and talking to accessories through Apple's External Accessory framework for MFi hardware.

How we work

  1. Read the protocol

    I go through the device documentation and, where possible, capture a real session before writing app code.

  2. Prototype against real hardware

    A small app that connects, reads and logs, so we agree on behaviour before the interface exists.

  3. Ship with field logs

    The production app keeps a readable connection log, which is what makes support possible once testers are out in the field.

Where I have done it

  1. Field app for a water utility supplier

    At VonRoll Hydro I work on LEAKAPP, the iOS and Android app engineers use with Bluetooth measuring devices, including an accessory over Apple's MFi programme.

  2. Connected products for private clients

    Bluetooth device integration in a Kotlin Multiplatform client app, plus an NFC proof of concept on iOS.

Questions I get asked

Can you work with our hardware or firmware team?
Yes. Most of these projects run as a pair: your firmware side owns the protocol, I own the app side and report back what the app actually receives, which often surfaces firmware edge cases.
Do you need a physical device?
For anything beyond a prototype, yes. One unit shipped to me, or remote access to a test bench, removes most of the guesswork.
Which frameworks do you use?
Core Bluetooth and External Accessory on iOS, the Android Bluetooth and BLE APIs on Android, and Kotlin Multiplatform when both platforms should share the protocol layer.

Related services

Have a project like this?

Book a 20-minute call and tell me what you are building. If I am not the right fit, I will say so on the call.

Book a 20-min call