I'm working on an iOS app where we need different binaries for each customer based on their needs. A customer may want to change all the colors, icons and texts. We can do that through white labeling process. The problem here, though, is when they ask for different behavior, for instance, removing login screen and making it optional to login.

I thought we can use dependency injections and use different handlers for each customer if needed. For instance, we can have LoginHandler1 and LoginHandler2, both implementing ILoginHandler and inherit from UIViewController.

However, use of dependency injection is costly, it slows down the app because resolving is expensive comparing to normal instantiation.

The other way is to define all these behaviors in the app and enable/disable them in a plist file. like "is login optional? yes/no"

Any suggestions?

Thanks