Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Offline actions #13

Open
nariman opened this issue Dec 23, 2016 · 0 comments
Open

Offline actions #13

nariman opened this issue Dec 23, 2016 · 0 comments

Comments

@nariman
Copy link
Contributor

nariman commented Dec 23, 2016

В приложении будет достаточно небольшое количество действий, которые можно было бы, в общем, совершить. На данный момент это:

  • отправка историй
  • комментирование (историй, ответы на комментарии других пользователей)
  • лайки (историй, комментариев)
  • жалобы (на истории, комментарии)

Полная регистрация не является действием.

В теории, когда пользователь не имеет подключения к сети интернет, все эти действия можно было бы сохранять в кеше. Когда у пользователя появляется активное интернет-соединение, эти действия отправляются на сервер (синхронизируются), совершая такие же запросы, что и обычные онлайн-действия.
При этом, если какое-то из действий не удалось (например, оставлен комментарий к истории, которая была по каким-либо причинам удалена, или запрос просто не был выполнен из-за ошибки во время запроса), то пользователю должно выводиться уведомление о том, что какое-то из действий не было отправлено на сервер. При этом, если это просто ошибка во время запроса, то стоит оставить это действие в списке синхронизации, и попробовать позже повторить попытку отправки его на сервер. Если же ошибка связана с тем, что данное действие более невозможно выполнить, то его стоит удалить из списка синхронизации.
При этом, стоит вести какой-то список этих действий, чтобы пользователь всегда мог посмотреть, какие из действий выполнились, какие нет, если вдруг, он по каким-то причинам, не смог посмотреть статус их отправки во время синхронизации.

CV:

  • Реализовать все действия в приложении, которые отправляются на сервер, как соответствующие объекты. Они будут создаваться и для онлайн, и для оффлайн действий.
  • Если есть активное подключение, то, минуя список синхронизации, сразу же выполнить запрос на сервер. Если же его нет, то добавить действие в список синхронизации (aka offline actions list)
  • Синхронизировать все действия ASAP. Чем больше задержка, тем больше вероятность в бессмысленности некоторых действий, например, комментирования.
@nariman nariman added this to the Release milestone Dec 23, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

1 participant