I've seen this functionality in many apps in the market, such as ADWLauncher. You install an app but then you can then download apps that only serve to theme the first app. I'd really like to do this in an app I've made but I have no clue how to do it.
The simplest solution would be to simply include all possible themes into the main application and then "unlock" them based upon what other apps are also installed. This is a non-preferred solution because the addition of more themes will make the app bigger resulting in wasted space. This also prevents 3rd parties from coming up with their own themes.
Another solution would be for the resources and classes from the themed app to be loaded in by the vanilla app, but I have no clue how this could be accomplished.
Is there another way that this could be accomplished? What is the suggested mechanism to do this? Any input will be greatly appreciated.
Similar questions have been asked before but with no response: