У меня есть приложение с 2 вариантами продукта и в результате 4 варианта сборки:
1) freeDebug
2) freeRelease
3) paidDebug
4) paidRelease
У меня есть Fragment
, который содержит рекламу, и для его реализации требуется 2 строки:
@Nullable @BindView (R.id.bottomsheet_ad) AdView mAdView;
mAdView.loadAd(adRequest);
Так что из-за 2 строк, мне потенциально нужно поддерживать 2 или более файлов.
Я рассматриваю 2 решения:
1) Проверьте вкус во время выполнения:
if (BuildConfig.FLAVOR.equals("flavor123")) {
...
}
2) Создайте общий вид и укажите нужные варианты в Gradle, как объяснено здесь :
android {
...
productFlavors {
flavorOne {
...
}
flavorTwo {
...
}
flavorThree {
...
}
flavorFour {
...
}
}
sourceSets {
flavorOne.java.srcDir 'src/common/java'
flavorTwo.java.srcDir 'src/common/java'
flavorThree.java.srcDir 'src/common/java'
}
}
Какое решение будет лучше? И проверяет ли вкус во время выполнения, как указано выше, загрязнение кода?