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