Stop losing your stuff
Ahmed-Jacob Aly, Germany
Committed team for a starter.
Suppose you often lose your keys and afterwards you spend a lot of time looking for them. How would a developed PREE app solve this problem? We have a PREE device which is attached to your key/car/bag etc.
The PREE devices are being produced according to iBeacon protocol. We developed app which allows its users to attach the PREE device to their account and establishes the Bluetooth connection between your smartphone (Android or iOS) and PREE device.
According to the received signal the app notifies user when he or she loses connection or is back in the reach of some PREE device.
Our task was to develop and release mobile app for Android and iOS platforms which has to communicate with BLE devices and give its users location information of their stuff.
The most important thing in PREE app is to provide the ability to quickly access and control their PREE devices. That’s why after user registration, the BLE starts scanning of PREE devices and attaches trackers to user’s account.
The main page - list of devices is available from almost all pages. This UX feature allows easy and fast access to settings of PREE devices.
Realized UX doesn’t have pages of deep nesting which allows us to have the fast access to all PREE devices.
The whole implementation of the app is possible thank to the open source cordova ble plugin – cordova-plugin-ble-central
This plugin allows to scan, connect, read/write information from a BLE device – in our case PREE device. We use this plugin for scanning PREE devices, getting power of received signal for every devices, setting bluetooth pair connection for every attached device. Also we used Google maps and Geolocation for storing and showing actual location for attached PREE device. All this stuff is required for main feature – notify user when you lose connect or back to range for some PREE device.
There are a lot of manufactures of Android devices and that’s why the bluetooth behavior is different with each of them. Sometimes the connection between Android smartphone and PREE device is established from seventh attempt. It takes a lot of customer time and we made the decision - keep scanning the BLE devices and try to reconnect after every unsuccessful connect. Also we implemented the scanning and connecting to operate in background mode. This leads to power consumption increase, but it seems that right now we have found a golden mean for Android platform - between strong connect, reliable data and acceptable energy consumption.
On iOS platform connecting to BLE works out better than on Android platform (iBeacon is developed by Apple). In iOS the main app flow is implemented through scanning of PREE devices and tries to connect to them. And it works fast and reliable. The price of that bluetooth functionality is more power consuming. Also in iOS it’s not easy for bluetooth to scan in background mode. Firstly in order to upload it to the appsotore you have to explain to them why you need it. Secondly the scanning in background mode leads to an increase in the power consumption of iPhone. That’s why we made the decision avoid using BLE scanning in background mode on iOS platform. The bluetooth connection works reliably it allows to read some information from PREE device and bluetooth periphery which helps to calculate the approximated distance.
- Developed app which can scan/connect/read/write for PREE ble devices (iBeacon);
- Developed feature which notifies user when he lose connection or back to range with his PREE device;
- Developed feature which store is the last to know location of your PREE device and rewrite it when you are back in range;
- Developed feature showing all the above mentioned locations on map for every device and on general map;
- Developed feature showing approximate distance to you PREE device;
- Developed two modes for PREE device – ‘close by’ (strict) and ‘normal’ (no strict) which depends on distance to your PREE device;
- Developed feature which notifies your family member when PREE device is lost;