Какова наилучшая стратегия загрузки метаданных в мобильные приложения? - PullRequest
0 голосов
/ 10 ноября 2019

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

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

Я использую модификацию 2, если это помогает найти решение.

1 Ответ

0 голосов
/ 10 ноября 2019

В моем случае я использую SharedPreferences (ключ-значение) для сохранения пользовательской информации, такой как токены безопасности и пользовательские данные. Но если вам нужно сохранить некоторые статические данные, такие как api url, ключи api для использования некоторых служб в вашем приложении, вы можете использовать resValues ​​в build.gradle (где вы ставите свои зависимости).

ПримерsharedPreferences:

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0);
Editor editor = pref.edit();
editor.putString("key_name", "string value"); // Storing string
val content = pref.getString("key_name", null); // getting String

Пример сохранения статических данных в gradle:

buildTypes {
        debug {
            resValue "string", "url_api", "http://test.api.org/"
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            resValue "string", "url_api", "https://production.api.org/"
        }
    }

И когда мне нужно вызвать этот URL с помощью модернизации, я использую эту строкукода:

val example = Retrofit.Builder()
.client(okHttpClient)
.baseUrl(application.getString(R.string.url_api)) // using resvalue from gradle
.addCallAdapterFactory(CoroutineCallAdapterFactory())
.build()
.create(ApropoApi::class.java)

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

В зависимости от вашей бизнес-логики, вы должны решить, что использовать.

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