Silicon Valley Code Camp : October 1 & 2, 2016session
Android Architecture, A Better Way
See how using MVP with Interactors can help make your Android app more resilient, flexible and easier to maintain, not to mention test. It's worth the effort.
About This Session
Android projects can get big, fast. And all too often the controller classes explode with all kinds of logic because there just doesn't seem to be another place to put all that code. Activities and fragments grow to huge proportions. I've recently been exposed to some very good examples of Android development using the MVP pattern instead of the MVC pattern and the results have been phenomenal. MVP (with the addition of Interactors and Gateways, in this case) provides a lot of benefits for Android, including the ability to keep your activities and fragments incredibly lean, effectively dividing logic and responsibilities between well-defined layers, keeping the app robust and flexible. But most of all, this division takes a platform that is notoriously difficult to test without resorting to instrumentation and flips that upside-down. It now becomes not only possible, but very easy to cover most of your application with unit tests. There are a lot of different favorite architectures out there, and I won't pretend to tell you that my way is the best way. But it has been great for me and has delivered a lot of benefits. Sample code is available here. Slides available here