Скажімо, у мене є безкоштовна і платна версія програми. Платна версія - це сукупність безкоштовної версії щодо функцій, доступних користувачам, тобто платна версія матиме всі функції безкоштовного додатка плюс додаткові.
Чи існує схема перемикання доступності функцій на основі прапора, який завантажується під час запуску (наприклад, безкоштовно / оплачено)?
Мені не подобається ідея про те, щоб скрізь були такі кодові блоки:
if(isFreeVersion){
// ...
} else {
// ...
}
Маючи 2 окремих гілок GIT для кожної версії не варіант , тому що це означало б збереження 2 (або більше) джерела коди, здається непрактичним в цілому і докладніше обговорюються тут: Ведення два окремих версій програмних забезпечення з того ж Codebase в управлінні версіями .
Чи є спосіб це зробити, зберігаючи єдину базу коду і не засмічуючи код умовними висловлюваннями, які перевіряють безкоштовний / оплачений прапор?
Я впевнений, що про це йшлося багато разів раніше, і я впевнений, що існують певні закономірності підходу до цієї проблеми, але я просто не можу її знайти.
Ми використовуємо Android / Java.
ifчеки, щоб приховати елементи контролю заборонених функцій або мати спливаюче діалогове вікно, коли користувач намагається робити те, що йому не дозволяється. Я сподіваюся знайти спосіб уникнути багатьох умов у коді