Breaking the monolith to microservices is a well-known concept to make backend solutions extendable and maintainable in a scale, by bigger teams. Since mobile apps have become more complex, very often developed by teams of tens of software engineers this concept also grows in mobile platforms. There are many benefits from having apps split into modules/features/libraries:
- features can be developed independently
- project structure is cleaner
- building process can be way faster (e.g., running unit tests on a module can be a matter of seconds, instead of minutes for the entire project)
- great starting point for instant apps
In case you are struggling with multi-module Android project, I have created example app showing how to deal with things like:
- Dependency injection with Dagger 2
- Unit test
- Jacoco tests coverage report
Even if those are very basic things, it can take some time to make them working correctly in multi-module Android app. To have working solutions in one place, I have created example project on my Github account. There will be more over the time (proguard, instrumentation testing, instant apps). But even at this stage it is also worth sharing.
Just take a look: MultiModuleGithubClient. Your feedback is warmly welcomed!