Разделите локальный и подтверждённый статус
Сохранённое на телефоне действие ещё не принято основной системой. Показывайте состояния «ожидает отправки», «принято» и «нужна проверка». Для отправляемых операций используйте устойчивый идентификатор, чтобы повтор не создавал вторую заявку. Не обещайте подтверждённую оплату или остаток товара, если устройство располагает только устаревшей локальной копией.
Заранее выберите правило конфликта
Два сотрудника могут изменить одну запись, пока один из них находится без сети. Простое правило «последний победил» подходит не для любых данных. Для важных полей может потребоваться версия записи, объединение отдельных изменений или решение ответственного. Согласуйте поведение при удалении объекта и отмене действия до синхронизации.
Проверьте долгую и прерывистую связь
Протестируйте закрытие приложения между сохранением и отправкой, смену пользователя, истечение сессии и повторную доставку. Локальные чувствительные данные должны храниться с учётом защиты платформы и удаляться по согласованным правилам выхода. Пользователю нужен видимый список неотправленных действий и понятный способ исправить ошибку, а оператору — диагностический след без утечки данных.
Что проверить
- Локальные и подтверждённые статусы различимы.
- Повтор отправки безопасен.
- Правило конфликта согласовано по типам полей.
- Закрытие приложения не теряет очередь.
Вопросы о проекте
Можно ли сделать всё доступным без сети?
Не всегда. Проверка актуальных остатков, оплаты и некоторых прав требует сервера. Такие действия нужно явно ограничить или перевести в предварительный статус.