Фиксированные данные или выборка для него Android

#android #client-server

#Android #клиент-сервер

Вопрос:

Мне интересно, какой подход выбрать в ситуации, если у вас есть клиент-серверное приложение, в котором у вас есть некоторые категории (просто название типа — например, кафе, ресторан и т. Д. И значок для него), Которые вы, возможно, захотите расширить в будущем.

Один из способов сделать это, насколько я понимаю, — это иметь ресурс списка строк (xml) и соответствующие значки на стороне клиента (конкретно клиент Android), и когда вы захотите добавить новые категории, вам придется создать новую версию и развернуть ее (если я не ошибаюсьи все это переходит в двоичный файл при компиляции).

Другой способ — иметь список типов на сервере (скажем, в виде простого объекта с типом и значком), и чтобы клиент извлекал его всякий раз, когда это необходимо, например, сначала извлеките все названия категорий, а затем соответствующий значок для выбранного.

Итак, мне интересно, что лучше в такой ситуации?

Комментарии:

1. Я думаю, что лучше хранить данные на обеих сторонах, выпускать ваше приложение с некоторыми данными (кафе, ресторан и т. Д.) И синхронизировать данные каждый раз с сервером в фоновом режиме

Ответ №1:

В конечном итоге это называется функцией синхронизации. Это зависит от требований и ситуаций.

На самом деле существует 3 способа реализации такой функциональности:

  1. Поместите все необходимые вещи в приложение и разверните в Play Store.
  2. Поместите статические данные внутри приложения (клиента) и динамические измененные значения на сервере.
  3. Поместите все на сервер и синхронизируйте с клиентом по мере необходимости.

Способ 1:

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

Способ 2: таким образом, вы можете сохранять статичные вещи, такие как логотип компании, баннеры компании и все подобные значения, которые обычно меняются нечасто. И вы можете сохранить остальные значения, которые, по вашему мнению, часто меняются, например, список сотрудников / сведения.

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

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

Способ 3: таким образом, все должно быть на сервере, клиент должен синхронизировать данные при первом запуске, а затем всякий раз, когда доступны новые данные.

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