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
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.
One app for iPhone and iPad, 9 languages
A universal app taken from an empty repository to the App Store, localized into 9 languages.
Reading measurements on site
Live spectrum charts and a provider-agnostic map layer, so the technician sees the measurement where it was taken.
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
480+ automated tests
Kept green on every release, which is what makes a field app safe to change.
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