Нет причин, по которым у вас не может быть одного приложения, которое использует базу данных и загружает обновления.Поддерживать обновление базы данных без загрузки целиком довольно просто.
Если вы записываете метки времени создания и изменения строк в базе данных на сервере и отслеживаете те же метки времени модификации на устройстве, обновляя базу данныхработает следующим образом:
Устройство определяет отметку времени последней модификации, установленную для данной таблицы.Мы назовем это latestTimestamp .Он отправляет latestTimestamp на сервер.
Сервер сравнивает latestTimestamp с отметками времени создания и изменения в базе данных.Сервер отправляет обратно данные, основанные на результате сравнения:
Если отметка времени изменения раньше , чем latestTimestamp , отправлять не нужнозапись, устройство уже имеет его;
Если отметка времени изменения позже , чем latestTimestamp , и отметка времени создания ранее , чем latestTimestamp , отправляет запись обратно, отмечая, что она должна быть обновлена в базе данных устройства;
Если метка времени изменения позже чем latestTimestamp и метка времени создания позже чем latestTimestamp , он отправляет запись обратно, отмечая, что она должна быть добавлена в базе данных устройства.
Наконец, серверная база данных должна отслеживать удаленные записи и метку времени удаления для каждой записанной записи.Если latestTimestamp на позже , чем отметка времени удаления, он отправляет обратно, что запись должна быть удалена.
Очевидно, что это немного большеСложно, когда у вас есть множество связанных таблиц, но если все отправлено обратно в правильном порядке, это прекрасно работает.
Используйте асинхронные запросы данных (библиотека ASIHTTPRequest делает это быстрым) и обновляйте данные в фоновом режиме, пока пользователь использует приложение.Если необходимо обновить данные до какого-либо взаимодействия с ними, вы можете отобразить индикатор активности и попросить пользователя подождать.
Нет необходимости в отдельном приложении.