Digamos que eu tenho uma versão gratuita e paga do aplicativo. A versão paga é um superconjunto da versão gratuita referente aos recursos disponíveis para os usuários, o que significa que a versão paga terá todos os recursos do aplicativo gratuito e mais extras.
Existe um padrão para alternar a disponibilidade do recurso com base em um sinalizador carregado na inicialização (por exemplo, gratuito / pago)?
Não gosto da ideia de ter os seguintes blocos de código em todos os lugares:
if(isFreeVersion){
// ...
} else {
// ...
}
Ter duas ramificações git separadas para cada versão não é uma opção, porque isso significaria manter 2 (ou mais) fontes de código, parece impraticável em geral e é discutido mais aqui: Manutenção de duas versões de software separadas da mesma base de código no controle de versão .
Existe uma maneira de fazer isso, apesar de ainda ter uma única base de código e não encher o código com instruções condicionais que verificam o sinalizador de pagamento gratuito?
Tenho certeza de que isso foi discutido várias vezes antes e tenho certeza de que existem alguns padrões para abordar esse problema, mas simplesmente não consigo encontrá-lo.
Usamos Android / Java.
if
verificações para ocultar controles de recursos proibidos ou ter uma caixa de diálogo pop-up para quando o usuário tenta fazer o que não tem permissão. Estou esperando para encontrar uma maneira de evitar muitos condicionais no código