Подтвердить что ты не робот

Как синхронизировать данные между различными устройствами

Я планирую реализовать приложение, и я подошел к точке, где я не знаю, что является лучшим подходом.

Сценарий:

У меня есть приложение, в котором я делаю список задач, и добавляю 3 элемента. Для этого я использую свой телефон. Затем я беру планшет и хочу продолжить добавление другой задачи. Затем через некоторое время я беру телефон моей жены и хочу добавить две новые задачи.

В принципе, я хочу иметь очень простой способ хранения задач в Интернете и иметь возможность синхронизировать его с приложением.

Я вижу два возможных способа:

  • имеют веб-сервер с вызовами базы данных + веб-службы. Это имеет недостаток, заключающийся в том, что хост оплачивает, изучает дополнительные методы mysql + web-сервиса.

  • Хранить как-то данные в облаке и разрешать приложению вход в систему для доступа к учетной записи, в которой хранится файл. Я думаю здесь о чем-то вроде Google Диска /Dropbox. Но я не знаю, как я смогу синхронизировать только обновленные значения, а не весь файл. Потому что я думаю, если я сохраню все задачи в один файл, каждый раз, когда я обновляю файл, мне нужно будет полностью загрузить его, что не подходит.

Я открыт для любых советов. Какой подход вы бы порекомендовали?

4b9b3361

Ответ 1

Я бы посмотрел в Google App Engine или Amazon Web Services. Они оба дают вам бесплатное выделение на использование в месяц, и если вы переходите, то вы начинаете платить, скорее всего, вы не пройдете мимо свободного уровня на некоторое время.

AWS в настоящее время немного более зрелый, чем GAE, и, похоже, было немного легче реализовать, что GAE было, когда я изучал их

Ответ 2

Также есть папка "Данные приложения" на Google Диске.

https://developers.google.com/drive/android/appfolder

Это имеет преимущество использования пользовательского пространства для хранения.

Ответ 3

Взгляните на новый учебный класс для адаптеров синхронизации: http://developer.android.com/training/sync-adapters/index.html для основы отправки данных с вашего устройства на сервер.

На устройстве Android я предлагаю вам хранить ваши задачи в поставщике контента. Это поможет вам отслеживать обновления с момента последнего синхронизации. Затем вы можете запросить поставщика во время синхронизации, отправить только те данные, которые были обновлены, и сохранить данные на сервере.

Вероятно, вы должны сохранить последнее время на устройстве, поэтому вы можете указать, содержит ли сервер данные, которые еще не находятся на устройстве. Помните, что вам также придется загружать задачи, если вы хотите, чтобы все устройства синхронизировались.

Ответ 4

Вы можете ознакомиться с нашей Rethync (бесплатно с исходным кодом). Используя его, вы можете упростить задачу обнаружения изменений и синхронизации только обновленных данных. Затем Rethync предоставляет API-интерфейс как на стороне клиента, так и на стороне сервера, поэтому вы можете создать свой собственный сервис (и разместить его на веб-странице), или вы можете написать свой собственный транспорт для облачного сервиса по вашему выбору (мы предоставим некоторые транспортные средства в будущем, они сейчас разрабатываются).