
IMKO Connect is a production mobile application used for collecting measurement data from professional hardware sensors developed by IMKO GmbH. The sensors are used in demanding environments such as construction, hydrology and the food industry, where data accuracy and connection reliability are critical.
The application is built with React Native as the shared UI layer and relies on a custom native Bluetooth communication framework implemented separately for Android and iOS. The project required close integration between mobile software and specialized hardware devices.
IMKO Connect works exclusively with IMKO's professional measurement hardware: the app is unusable without a physical sensor. Its install base therefore maps directly to active industrial deployments - every install is a customer using the system in the field, in construction, hydrology and food-safety environments.
The primary goal of the project was to enable stable and reliable communication between mobile devices and high-precision moisture sensors. These sensors expose low-level communication protocols and require direct interaction with hardware-specific APIs.
Unlike typical mobile applications, this project involved constraints imposed by the hardware itself, including legacy Bluetooth protocols, authentication requirements and strict timing and reliability expectations.
One of the main technical challenges was the communication protocol used by the initial generation of sensors. Instead of Bluetooth Low Energy (BLE), the devices relied on Bluetooth 2.0.
Depending on the sensor ID, the app dynamically renders different layouts - because not all sensors have the same features. Users can trigger measurements manually or enable continuous mode, where readings are taken automatically at a set interval.
Because of this:
- There were no existing React Native libraries suitable for the task
- No open-source solutions could be reused
- Platform-specific Bluetooth APIs had to be used directly
This required implementing a fully custom native communication layer for Bluetooth Classic and BLE, depending on sensor generation, capable of handling:
- Device discovery
- PIN-based authentication
- Connection lifecycle management
- Low-level command execution
- Error handling and reconnection scenarios
The application architecture consists of three main layers:
React Native Layer
- Shared UI and business logic
- Session management and data visualization
- Export functionality and localization
Android Native Layer (Kotlin)
- Custom Bluetooth 2.0 communication module
- Device discovery and pairing
- Command handling and measurement triggering
iOS Native Layer (Swift)
- Native Bluetooth communication implementation
- Authentication handling
- Sensor interaction and data transfer
The native layers expose a controlled and predictable API to the React Native layer, ensuring that platform-specific complexity remains isolated from the shared application logic.
The application allows users to:
- View previously paired sensors
- Scan for and connect to new devices
- Authenticate using a PIN-based flow
- Trigger measurements manually or in continuous mode
Based on the connected sensor type, the UI dynamically adapts to expose only the features supported by that device.
Measurement data is grouped into sessions, allowing users to organize readings by location or context. Sessions can be exported as CSV files for further analysis and comparison.
The application supports multiple languages and is currently available in English, German and Italian.
The application is designed to operate in environments with unstable connectivity. Measurement sessions are preserved locally, ensuring that collected data is not lost if the connection is interrupted.
The Bluetooth communication layer is built to handle reconnection scenarios gracefully and to recover from transient errors without requiring user intervention.
This project required working beyond the standard React Native abstraction layer and implementing native mobile solutions where necessary.
Key areas of experience gained include:
- Native Bluetooth communication on Android and iOS
- Designing custom native modules for cross-platform applications
- Integrating mobile software with specialized hardware devices
- Building systems that must remain reliable under real-world constraints
IMKO Connect represents a production system where stability, correctness and maintainability were essential.
