ALTAPPS-424: Shared change endpoint config on demand & debug feature draft #295
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
YouTrack Issues:
#ALTAPPS-424
Checklist
Before Code Review:
Description
Изначально я хотел добавить 3 JSON файла для каждого из endpoint config и построении (при запуске приложения) графа зависимостей загружать нужную JSON конфигурацию для текущего endpoint config type. Но это оказывается не просто, нужно как-то копировать эти JSON файлы в assets Android и iOS приложений, а потом еще как-то читать с диска, поэтому решил забить на это и продолжить использовать BuildKonfig.
В момент построения buildkonfig очевидно, что сразу нужно генерировать все возможные параметры, поэтому для генерируемого buildkonfig стала область видимости
internal
и добавился wrapper над нимBuildKonfig
, который уже основываясь на текущем endpoint config type возращает нужные параметры. Ну и самое заметное неудобство - для получения параметровBuildKonfig
нужно создать экземпляр класса, ранее это не нужно было делать, ноBuildKonfig
теперь лежит вCommonComponent
, поэтому должно быть не так больно, чтобы получить к нему доступ.Текущий endpoint config type определяется на основании, что сохранили в настройках по ключу
DebugCacheDataSourceImpl
. По умолчанию используетсяproduction
endpoint config type. При изменении значения по этому ключу вDebugFeature
нужно будет почистить кэши, разлогинить и возможно что-то еще, но это в рамках другой задачи.Там сейчас скорее всего есть ненужные Messages, Action или недостаточно чего-то - это уже будет исправляться в рамках задачи, когда будем делать presentation/view.
Для того, чтобы понять нужно ли показывать debug menu в DebugFeature добавлена такая проверка
DebugFeature.isDebugFeatureAvailable(buildKonfig:)
.IS_DEBUG_CONTROLS_ENABLED
будет передаваться в CI, а при отсутствии такой ENV переменной будем смотретьBuildVariant.DEBUG
локальная разработка.