- when you need to have the app’s strings present in multiple lanuages
- when you have to provide different versions of your app based on the physical device size
- when you want to provide different versions of your app based on the device screen density
- when you want to provide different version of your app with custom configuration and resources