Nehmen wir an, ich habe eine kostenlose und kostenpflichtige Version der App. Die kostenpflichtige Version ist eine Obermenge der kostenlosen Version in Bezug auf die Funktionen, die den Benutzern zur Verfügung stehen. Die kostenpflichtige Version bietet also alle Funktionen der kostenlosen App sowie zusätzliche Funktionen.
Gibt es ein Muster zum Umschalten der Funktionsverfügbarkeit basierend auf einem Flag, das beim Start geladen wird (z. B. kostenlos / kostenpflichtig)?
Ich mag die Idee nicht, überall folgende Codeblöcke zu haben:
if(isFreeVersion){
// ...
} else {
// ...
}
Es ist keine Option, zwei separate Git-Zweige für jede Version zu haben, da dies bedeuten würde, zwei (oder mehr) Codequellen zu verwalten . Dies erscheint im Allgemeinen unpraktisch und wird hier ausführlicher erläutert: Verwalten von zwei separaten Softwareversionen aus derselben Codebasis in der Versionskontrolle .
Gibt es eine Möglichkeit, dies zu tun, während Sie immer noch eine einzige Codebasis haben und den Code nicht mit bedingten Anweisungen verunreinigen, die das Flag für frei / bezahlt prüfen?
Ich bin mir sicher, dass dies schon oft diskutiert wurde und ich bin mir sicher, dass es einige Muster gibt, um dieses Problem anzugehen, aber ich kann es einfach nicht finden.
Wir verwenden Android / Java.
if
Überprüfungen, um Steuerelemente für verbotene Funktionen auszublenden, oder um Popup-Dialoge, wenn der Benutzer versucht, das zu tun, was er nicht darf. Ich hoffe, einen Weg zu finden, um viele Bedingungen im Code zu vermeiden