Участник прошёлся до полуночи, а данные поступили в приложение на следующий день. Если награда зависит от дневного результата, системе нужны правила времени и повторной обработки. Иначе пользователь может лишиться обещанного либо получить два начисления за одну активность.
Время действия и время доставки различаются
При обработке нужны период активности и момент получения сведений. Запись, доставленная сегодня, не обязательно относится к сегодняшней прогулке. До подсчёта определите, что означает день: выбранный часовой пояс, границы периода и порядок изменения этих условий.
Путешествие между часовыми поясами также требует понятного правила. Простая смена настройки не должна незаметно создавать ещё один комплект наград за уже учтённое движение. Конкретное решение зависит от обещания продукта; универсальный календарь для всех приложений здесь не назначается.
Обновление записи не является новой прогулкой
В документации Health Connect о синхронизации предусмотрены новые, изменённые и удалённые записи. Значит, приложение не всегда получает только окончательную добавку. Для проверки нужна связь с ранее обработанной записью, чтобы отличать изменение от нового результата.
Если сначала пришло неполное значение, а позже уточнённое, складывать оба целиком нельзя. Сохраните, какой итог теперь допустим и как он влияет на уже выданную награду. Удаление в источнике тоже требует выбранного порядка; молчаливое изменение истории способно затруднить объяснение пользователю.
Учебный случай на границе дня
Пусть условие награды в примере — 5 000 допустимых шагов за выбранный день. В 23:50 приложение знает о 4 800, утром получает запись ещё о 300, относящихся к вчерашнему периоду. При таком условии уточнённый итог — 5 100.
Если исходное обещание допускает эту позднюю доставку, результат нужно обработать по объявленному правилу. Если существует срок окончательной проверки, он должен быть известен заранее. Пример не устанавливает цель активности или правила DIAVERSE; числа выбраны только для разбора времени.
Ожидание и окончательный отказ должны различаться
Пока данные могут уточняться, человек должен видеть состояние проверки. Если результат окончателен, укажите основание: период закрыт, данных недостаточно или награда уже получена. Сообщение «не выполнено» без различения этих причин делает обычную задержку похожей на наказание.
Для поддержки полезен достаточный след: версия результата, период и факт выдачи. Повторный запрос после потери связи не должен повторно выдать тот же результат. Это проверяют отдельным случаем наряду с обычным своевременным получением данных.
Происхождение данных шагов отвечает на вопрос об их допустимости. Здесь к нему добавляется время окончательного решения. Для бюджета программы важно видеть ожидающие проверки и исполнения, а не считать их отсутствующими обязательствами.