Our collaboration started with a kickoff. During the kickoff, our client presented an existing mobile iOS app and explained the characteristics of the custom Bluetooth-based protocol to communicate with the device. After returning, the Lohika team began working on the mobile SDK for Android and iOS based on our client’s native C library to:
- Provide a convenient API for third-party mobile developers
- Support “over the air” (OTA) updates of the device’s firmware
- Enroll a device
- Perform data exchange with the device
During the implementation, we discovered that after a firmware update, the device data format was frequently changing. That led to data loss during the synchronization with the device and required a manual update of the SDK to fix the issue. An automated solution was implemented to maintain an evolving, working contract between our client’s hardware team and the Lohika team.
Together, we decided to have a data format definition file in JSON format, owned by a hardware team. Our team developed a custom plugin that parsed this configuration file and auto-generated auxiliary code for SDK. This plugin was a part of the SDK build process. We created a robust mobile SDK that is used by third-party developers to build apps on Android and iOS that use data from the device. In addition, the Lohika team built a set of research apps for showcasing mobile SDK capabilities.
The next step of the collaboration was to create Android and iOS consumer apps that come with the wearable device. The app provided functionality to register the device, sync data between the app and the device, and upload data to the cloud for real-time and historical user analytics. During implementation, the Lohika team introduced pre-processing algorithms to optimize sensor data collection and processing on the device, to avoid overwhelming the device’s storage and network usage.
Lohika front-end engineers were responsible for building flexible dashboards that displayed data collected from devices and delivered insights to consumers. A web frontend app was developed using React/Redux and fetched data from the backend.
As part of the engagement, the Lohika team covered the SDK and main mobile app services with unit tests and set up a proper C/ICD with Jenkins. The Jenkins pipelines covered the building of Android and iOS apps and SDKs. Then, it deployed the apps to Fabric and the SDKs were uploaded to private repositories.