Have a look at this excellent presentation, it shows the approaches and difficulties facebook have had while structuring the facebook app.

Facebook Link

What is interesting is how facebook made all of their major screens as separate libraries, these libraries invoke custom schema calls which then opens those screens. Quite an interesting view and approach to a large scale development application. By separating each major functionality into a library, you can then focus on the core functionality and not have any form of conflict.