An Android app is a forest of trees: views, contexts, navigation, and model. These hierarchical structures are distinct but often entangled, making apps complex, hard to build, and harder to understand.
This talk will focus on how Square has cleared the forest, teasing the trees apart to build simple, testable, maintainable apps. It will cover the techniques we use to work with each tree individually and to manage their interactions to minimize complexity. Throughout, there will be discussion of how these techniques relate to libraries like Dagger, Mortar, Flow, Transitions, and others.