Как разработать автономное приложение для Android
Мы разрабатываем собственное приложение для Android (iOS и веб-приложение), где пользователи могут совместно создавать альбом.
Мы хотим как можно более бесшовной работы, когда устройство не может подключиться к серверу.
Что-то вроде упомянутого в этом блоге Hoodie, но Hoodie прямо сейчас для Интернета и iOS, и мы ищем Android прямо сейчас.
Проблема
Поддержание данных альбомов, друзей, картинок (URL/локальный, а не растровый) на стороне клиента.
Возможность синхронизации автономных операций создания/обновления с сервером в дальнейшем с разрешением конфликтов.
Текущие исследования
Пользовательский
Поддержка данных в SQLite на Android и MySQL на сервере
Синхронизация с помощью Android Sync Adapter.
Однако это может занять много времени и иметь ошибки при запуске.
Как к этой проблеме нужно подойти?
Ответы
Ответ 1
Сейчас я работаю над проектом, и нам нужно отслеживать поставки и проверять доставку, даже когда пользователь находится в автономном режиме. Подход, который я использую, заключается в использовании этого ContentProvider плагин Простой контент-провайдер. И я проверяю, есть ли там интернет или нет, и если нет. Он сохраняет данные поставщику и изменяет все, что необходимо изменить, в DATABASE и заставляет моего пользователя полагать, что он или она выполнили заказ. И у меня есть SyncAdapter, ожидающий выхода в Интернет. И у меня есть служба push, чтобы обновить базу данных после изменения базы данных. Имея понимание Google Cloud Messaging, вы сохранили бы у пользователя много времени на автономную работу. Там могут быть лучшие варианты. Но из моего небольшого опыта работы с Android, что моя небольшая помощь может быть.
Ответ 2
Вы посмотрели CouchBase Server и CouchBase Lite?
Они предоставляют мощный инструмент, называемый SyncGateway, который обрабатывает для вас всю синхронизацию и слияние данных между сервером и внутренней базой данных, Вам не нужно ничего закодировать в своем мобильном приложении для синхронности.
Couchbase Lite доступен для iOS и Android.
Существует также plugin для доступной версии Cordova/PhoneGap.
У меня никогда не было никаких проблем с его компиляцией, просто для iOS нужно собирать для iOS6 +, это не работает с iOS5
Ответ 3
Вы можете проверить API с открытым исходным кодом для этого под названием Венди. Самое удивительное в этом то, что он использует вашу существующую архитектуру.