I want to save the data locally on my watch no matter what. It seems like I should be using Jetpack Datastore here
Yes, but see this note:
If you need to support large or complex datasets, partial updates, or referential integrity, consider using Room instead of DataStore. DataStore is ideal for small, simple datasets and does not support partial updates or referential integrity.
it makes sense to have a standalone app
Yes, that's the general recommendation, and it doesn't look like in your case, the phone is needed to increase/decrease counters:
We recommend that Wear OS apps work independently of a phone so users can complete tasks on a watch without access to an Android phone
Should I be using Datastore on the watch and then use something like Wearable Data Layer API to sync the data between mobile and watch, whenever they are connected?
Or does it make more sense to use a cloud storage, like AWS, to upload the data to the cloud and synchronize the devices independently of each other?
Yes, Wear Data Layer API will take care of "synchronize the devices independently of each other whenever they are connected" for you:
Data is transferred in one of the following ways:
- Directly, when there is an established Bluetooth connection between the Wear OS device and another device.
- Over an available network, such as LTE or Wi-Fi, using a network node on Google's servers as an intermediary.
More resources on this:
if someone has some guidance on that as well, I would appreciate that