2013-07-16 2 views
19

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

Сценарий:

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

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

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

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

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

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

+0

Google Cloud Save звучит как идеальное решение, но оно еще не выпущено ... http: //developer.android.com/google/gcs/index.html –

ответ

6

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

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

+3

Благодарим вас за варианты. Также DropBox Datastore api кажется действительно хорошей бесплатной альтернативой ... – Alin

2

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

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

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

0

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

+0

Похоже, что это никогда не проходило мимо предварительного выпуска. Разве это активно развивается? Любые обновления? Дорожная карта? – IInspectable

+0

@IInpectable Он стабилен и полностью функциональен и включает документацию. Если возникнет проблема, мы соответственно обновим ее. Что касается будущих разработок - двигатель в его текущем состоянии является автономным, то есть любые новые функции не соответствуют нынешней концепции механизма синхронизации. С другой стороны, такие вещи, как TLS, уже существуют (используя транспортные средства, поддерживающие TLS). –

15

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

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

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

+1

Я думаю, что для этого вам нужна одна и та же учетная запись на обоих устройствах, что, скорее всего, неверно для «взятия телефона моей жены». – TWiStErRob

+0

@TWiStErRob Не означает ли это, что для входа в устройство необходимо использовать тот же аккаунт? – CamHart

+2

@CamHart Ты прав. Я думаю, что точка TWiStErRob заключается в том, что OP вряд ли будет иметь свою учетную запись на телефоне своей жены. Поэтому, хотя это может быть простой способ синхронизации данных между устройствами, он не обязательно отвечает всем требованиям этого вопроса. – Mike

Смежные вопросы