When constructing well being and health apps on Put on OS, Well being Companies offers nice performance overlaying many eventualities.
One space that has seen an explosion of curiosity in recent times is residence exercises, with apps for a various vary of train varieties and types. This weblog put up takes a have a look at find out how to incorporate Put on OS help in residence exercise apps, to additional improve the expertise for customers.
Exercises in a linked world
Sometimes for an at-home exercise, the consumer expertise is centered round a cellphone, pill or TV, on which the primary educational content material is proven.
The Put on OS app serves as a companion: Utilizing the sensors on the gadget, knowledge, akin to coronary heart fee, is streamed to the primary gadget, the place it’s proven on the display screen.
ExerciseClient for all of your train wants
With the launch of Beta03, Well being Companies now offers enhanced help for linked residence exercises, via the introduction of BatchingModes, as shall be defined beneath.
Well being Companies is already well-established at monitoring exercises of many differing types, and offers an entire bunch of workout-related performance.
Within the standalone state of affairs, for instance, for those who have been constructing a operating app to trace your run outside, ExerciseClient
offers the next performance:
- Lively length monitoring, throughout totally different states (energetic/paused and many others)
- Statistical metrics built-in, akin to common tempo, whole distance
- Auto-pause
- And lots of extra…
Nonetheless, the important thing distinction between a operating state of affairs and the house exercise state of affairs is that within the former, the Put on OS gadget is working standalone, whereas within the latter, the gadget is a companion.
To see how Well being Companies Beta03 can assist with this state of affairs, it’s first mandatory to take a look at some background on the totally different working modes of ExerciseClient
:
Battery financial savings and knowledge batching
The state of affairs described may really be a problem for ExerciseClient
, and right here’s why: ExerciseClient
works in two modes, relying on the display screen state:
- Display interactive
- Display in ambient/off
Let’s have a look at every in flip:
- When the display screen is interactive: Well being Companies offers high-frequency updates to your app. So if a sensor is working at 1Hz, you’ll sometimes be receiving particular person readings at this fee.
That is nice to your app and the consumer, as you’re getting close to instantaneous knowledge in your progress or efficiency. - When the display screen is ambient/off: This happens sometimes once you’re not wanting on the gadget. On this state of affairs, by default, Well being Companies switches to batching mode.
Which means the information from that 1Hz sensor will proceed to be collected, however gained’t instantly be delivered to your app. Why? As a result of this enables your app and principal processor to sleep, leading to battery financial savings to your customers.
Nonetheless, the second the consumer interacts with their gadget once more, and the buffered knowledge shall be delivered — and your customers shall be none the wiser!
This default conduct of Well being Companies permits apps akin to operating apps to function very effectively, sleeping for minutes at a time with no lack of knowledge assortment.
The companion problem
Sadly, for those who look again at our state of affairs, it is a downside: In a house exercise, metrics from Put on OS are displayed on one other gadget, such because the cellphone or TV. Sometimes the consumer gained’t be their watch while within the exercise — they’ll be focussed on the first gadget, for each instruction and overlaid metrics.
After a short time, the watch app would fall asleep, Well being Companies would begin batching knowledge, and the consumer would now not see often up to date metrics on the primary gadget.
As a substitute, they’d get updates much less continuously, when the buffer is full and the app is pressured to get up because the buffer is flushed. That is good for battery energy however not best for consumer expertise
Introducing BatchingMode
With Well being Service beta03 comes the addition of various BatchingMode
help. BatchingMode
permits your app to override the default batching conduct described above to get knowledge deliveries extra typically. This acknowledges that while the default conduct is nice for many eventualities, it gained’t be best in all instances.
The primary batching mode launched is aimed particularly on the residence exercise state of affairs: BatchingMode.HEART_RATE_5_SECONDS
, although the API has been designed with the long run in thoughts and additional BatchingMode
definitions could also be added in the end.
As a substitute of coronary heart fee batching for probably minutes at a time when the display screen leaves interactive mode, BatchingMode.HEART_RATE_5_SECONDS
ensures that coronary heart fee knowledge will proceed to be delivered often all through the exercise.
Observe that simply as with common batching, the sampling fee is unaffected, so the app will nonetheless sometimes get coronary heart fee knowledge at 1Hz — simply delivered each 5 seconds when not in interactive mode.
Configuring BatchingMode
As with most issues in Well being Companies, a capabilities-based method is taken, so step one is to find out which extra BatchingMode definitions are supported:
As soon as help for the required batching mode has been confirmed, specify that it must be used, by way of the brand new property in ExerciseConfig
:
Discover that though the brand new batching mode is geared toward offering ensures just for the center fee reporting frequency, extra metrics may be included as per regular. These shall be delivered at the very least as typically because the default batching conduct.
Within the instance above you possibly can see the combination knowledge kind of TOTAL_CALORIES
, because it might be helpful to indicate the full calorie expenditure within the closing abstract display screen.
Efficiency issues
It’s price mentioning that whereas that is excellent for the house exercise app use case, by the very nature of the brand new batching conduct, the app shall be woken up extra typically. Because the identify implies, HEART_RATE_5_SECONDS
goals to ship knowledge each 5 seconds, which is a superb tradeoff between near-real time knowledge, and battery financial savings.
For standalone exercise apps, you need to use Well being Companies with the default conduct — use HEART_RATE_5_SECONDS
solely when completely mandatory, to make sure the perfect battery efficiency.
Bringing your units collectively
The HEART_RATE_5_SECONDS
batching mode represents step one for Well being Companies into supporting a larger vary of use instances, in a world of more and more interconnected exercise units, to make sure they will work higher collectively.
A associated space for residence exercise apps is discovery and set up: When you’ve obtained your Put on OS app printed, you need it to be simple to find, set up and launch from different linked units, to make sure most ease of use to your customers.
Some precious additions to the consumer expertise may embody:
- Routinely detecting the Put on OS gadget from the cellphone app
- Detecting whether or not the app is already put in on the Put on OS gadget and offering the consumer with the choice to take action.
- Launching the app robotically on the watch when the consumer begins a exercise on the cellphone.
Horologist is a library for Put on OS which — amongst many different issues — can present this performance.
For example, including detection for the Put on OS gadget and app is so simple as:
Every linked gadget reveals some particulars about its standing:
From right here, the cellphone app may show a button which when clicked would set up the Put on OS app, utilizing:
After which launched utilizing:
Incorporating these conveniences into the watch and cellphone app assist convey a easy expertise to the consumer.
Streaming knowledge to the primary gadget
With the app put in and launched, we have to take into account how greatest to transmit knowledge to the primary gadget, be {that a} pill, cellphone or TV.
Some choices embody:
- Bluetooth LE (low power) — utilizing customary Android Bluetooth APIs to transmit to the primary gadget.
- Community — using the Wifi connection on the watch.
- DataLayer Connectivity —
ChannelClient
, a part of the Put on DataLayer, permits the cellphone and watch to speak utilizing streams.
Essentially the most acceptable alternative to your app depends upon the specifics of your app.
Abstract
We checked out how Well being Companies can assist convey Put on OS into your exercises, and likewise some strategies for permitting the cellphone and watch to work higher collectively.
Maintain an eye fixed out for additional enhancements to Well being Companies and Batching Modes, and it could be nice to listen to your experiences by way of the feedback beneath!
Code snippets license:
Copyright 2023 Google LLC.
SPDX-License-Identifier: Apache-2.0