The idea of an app is to encapsulate everything needed for a specific task in one package. I don't think it's possible to install another add-on automatically when one is installed. Why would you want to split the two? If one is needed for the other, then either include it in the package or mention the dependency in the documentation.
What you can do however is check for the add-on when loading a visualization of the app and display a message to the user if the add-on is not found, much like the Splunk on Spunk app does with Sideview Utils.