i trying implement feature based flows, in android app: some users able win points , spend them, others not. not able win points, should not see point related ui , logic should not triggered. some users able see offers, other users not. same above.... so basically, each user have list of privileges, , views show/hide based on those, other logic should run user , not other (if user.haspointsfeature -> server call , update points, if not, show him message) i looking @ best way implement architectural point of view, other developers working on project in future, , want make solid , clean possible. here's i'm thinking of far: for ui elements: implement custom layout called: "featurewrapperlayout", have custom attributes app:features="points" for example. , in when initiating it, check it's feature user features , show/hide accordingly. for code, can't settle on 1 approach need most 1. use if/else everywhere this basic solution....