Design Pattern: Quick Check
Quick Check apps let users get in fast to check a reading or check device status, then get out
These types of apps need to perform their jobs quickly and reliably. They don't necessarily need to be connected all the time.
Example: Checking Battery Status
A BLE-enabled power sports battery allows the owner to check uptime, voltage, and temperature. Generally, these checks are done on the spot and the user wants to see the status at a glance.
On the phone side: the app should be configured to find devices as quickly as possible, connect quickly, and gather data quickly.
Android
Discovery times can be increased by using a scan filter (if the device advertises a service UUID) and also using low latency scan mode. For connections, request a connection fast connection interval.
iOS
As with Android, increase discovery times by using a scan filter (if the device advertises a service UUID). Adjusting scan mode or connection interval is not an option in CoreBluetooth APIS.
Minimizing the number of reads and writes is best for both platforms, as these take time. Ideally, the device provides the needed readings in a request or two.
If using writes to request data, using write-without-response reduces transaction time (since write-with-response requires an additional ack from the phone).
On the device side: the device should advertise a service UUID, as well as have a low advertisement and low connection interval.
If possible, structure the BLE protocol to return data the app will need in 1-2 requests. If too many reads/writes are required to collect all the data for the user, app responsiveness will suffer. (Remember this is the quick in and out use case).
Set a quick advertising interval to help the phone find the device quickly. The best approach is to follow Apple's recommendations for setting advertising intervals (Section 51.5) and connection intervals (51.6). Note: iOS does not allow app developers to tweak connection intervals, since the device-phone negotiates the min/max. Following Apple's guidelines maximizes compatibility with iOS.
Power considerations:
Fast advertising intervals increase detection times but will consume power. You will want to experiment to find a good balance.