BlueRange SDK for Android and iOS
BlueRange is a novel hardware and software solution being developed by M-Way Solutions. It can be used to build and control a mesh of Bluetooth Low Energy capable beacons. The software embedded in the devices uses a sophisticated algorithm for the construction and stabilization of BlueRange meshes and can thereby ensure a maximum degree of availability.
Besides common application areas like facility management, BlueRange is intended to provide a platform for location-based services like indoor navigation. To facilitate the development of mobile applications that interact with BlueRange meshes, we have been working out a mobile SDK for the Android and iOS platform called BlueRange SDK.
Targets and requirements
Currently the SDK provides some basic components for the communication with BlueRange beacons and will in future consist of a large set of reusable services that can be switched on and off depending on the application’s use case. All services will be ready to use modules and will provide a seamless integration into any BlueRange mesh infrastructure.
At the moment our team is working on a heatmap service, that captures, tracks and visualizes the location of all devices that can be reached by a mesh. For this purpose, each device collects BlueRange specific advertising messages being sent out by the beacons. Together with the received signal strength these messages are delivered to a device management system that localizes each device and generates a heatmap using the collected data of all devices. A huge amount of location data gathered over a long period of time can either be visualized for manual interpretation or may in future be used to train machine learning models to reveal unknown data correlations. The figure below shows a heatmap how it could be rendered using the location data collected inside a store.
Currently the BlueRange SDK supports Android 6.0 Marshmallow and iOS 8.0 devices. However, to enable advertising, Android devices must additionally support the Bluetooth LE peripheral mode.
At the moment the BlueRange SDK provides the following features:
- Scanning BlueRange specific messages and iBeacons.
- The scanning procedure will be continued when the app is running in background mode, even when the user attempts to terminate the app.
- The energy consumption can be adjusted dynamically by changing properties like the scan interval.
- Messages can be saved persistently and postprocessed at a later time.
- Messages logged over a long period of time can be transformed to status reports and periodically sent to a mesh management system.
- Advertising arbitrary data and BlueRange specific messages in foreground and background mode.
The BlueRange SDK contains numerous independent, highly reusable components that can easily be combined with each other. Mobile applications using the BlueRange SDK can build on top of core components as well as on ready to use services provided by the SDK. As can be seen in the figure below, the architecture can be divided roughly into a core and a service layer.
To guarantee a maximum degree of quality and flexibility, our team makes use of agile, incremental software engineering practices and techniques. Each component will be tested in a test environment consisting of Nordic nRF51 beacons right after its implementation. As the setup and execution of system tests can become quite demanding, all components will additionally be tested with automated unit tests. By making use of dependency injection and other design principles and patterns, the components can be tested both independently and in interaction with each other without the necessity of setting up the whole test infrastructure. Furthermore, isolating test objects allows us to simulate scenarios that would be very complex to reconstruct in a real-world setting. By systematically using the engineering practice of test driven development (TDD), we, moreover, ensure that errors will be found when they arise and the source code will always preserve an easy to test structure.
In future the BlueRange SDK will be extended by numerous features. Besides the above mentioned heatmap service we plan to enhance the SDK by a large amount of location-based services like indoor navigation or coupon services.
Originally published at Thinking Mobile.