Когда в магазине нет связи
Плохой приём в супермаркете не случаен: большие здания, бетонные стены, холодильное оборудование и металлические стеллажи. На практике значительная часть покупок происходит именно там, где телефон хуже всего подключён.
Что работает без соединения
Сам список. Можно добавлять позиции, отмечать взятое, менять количество, переставлять и удалять — всё хранится на устройстве. Когда связь возвращается, изменения уходят и доходят до остальных участников списка.
Сканировать штрихкод тоже можно: распознавание идёт на устройстве и интернета не требует.
Что требует связи
Цена, которой телефон ещё не видел. Цены читаются с сервера, поэтому про товар, который он ещё не запрашивал, приложение говорит, что цены нет, и не угадывает. Практичное решение — собрать список дома, пока связь есть, и дать ценам загрузиться тогда же.
То, что уже лежит в телефоне, показывается. Цены трёх последних выбранных магазинов хранятся на устройстве сутки, поэтому цены рядом с позициями списка остаются на месте и у полки, совсем без связи.
Присоединение к новому списку по приглашению тоже требует связи, один раз.
Почему так устроено
Можно было сделать приложение, которое без сети просто отказывается работать, — это гораздо проще в разработке. Решение было обратным: список — это прежде всего локальная запись в телефоне, а синхронизация надстроена сверху. Поэтому то, что нужно вам в реальном времени у полки, никогда не зависит от приёма.
Что будет с изменениями, сделанными без связи?
Они сохраняются на устройстве и отправляются, как только связь вернётся. Ничего делать не нужно и оставаться на экране тоже.
А если другой человек тем временем правил список?
Правки объединяются. Этот случай учтён заранее, поэтому список одного не стирает список другого.