Skip to content

Case study

A Bluetooth field app for water networks

LEAKAPP is the app technicians use to find water leaks with acoustic measuring devices. I lead the 3-developer mobile team, built the iOS app from an empty repository, and contribute to Android.

Client
VonRoll Hydro
Role
Mobile Tech Lead
Period
Since 2025

The problem

The app is used outdoors, by technicians wearing gloves, next to a device that streams measurements over Bluetooth. Everything that is convenient in an office app, such as assuming a stable connection or a reliable network, stops being true in the street.

What I did

  1. Bluetooth devices end to end

    Connection to the field devices with live data, file transfer and firmware updates, built so that a lost connection is a state the app expects rather than a crash.

  2. One app for iPhone and iPad, 9 languages

    A universal app taken from an empty repository to the App Store, localized into 9 languages.

  3. Reading measurements on site

    Live spectrum charts and a provider-agnostic map layer, so the technician sees the measurement where it was taken.

  4. A team and a test suite

    I lead 3 mobile developers, review the Android work, and keep 480+ automated tests running on a pipeline built on Bitbucket, Xcode Cloud and fastlane.

Where it stands

  1. 480+ automated tests

    Kept green on every release, which is what makes a field app safe to change.

  2. A team of 3 mobile developers

    Shared conventions, reviews and a release process the team runs without me in the room.

Questions I get asked

Can you work with our devices?
Yes. Give me the protocol documentation and one unit, and the first milestone is a small app that connects, reads and logs, before any interface work.
Why can't you show screenshots?
The project is under NDA. I can talk about how it is built, not about device names, protocols or measurements.

Stack

  • SwiftUI
  • Swift Concurrency
  • Core Bluetooth
  • GRDB
  • Jetpack Compose
  • Kotlin Multiplatform
  • Xcode Cloud
  • fastlane

This project is under NDA, so device names, protocols and client details stay out of this page.

Other case studies

Want something like this built?

Book a 20-minute call and tell me about your app. I will tell you what I would do first.

Book a 20-min call