I decided to start using monorepo for all of my new personal Android projects. Let’s take a look at issues I had with separated repos.
Obsolete codebase
Recently I decided to quit one of my old open source projects [SecurityShowcase] for several reasons (Complete list is written in the repo’s readme) . But one of those reasons was outdated codebase. This is painful with every personal project where I return back after months or even worst after years.
Reuse code
Every time I start to write the new app I repeatedly copy/paste skeleton with all basic core files and every time I have to solve issues when bumping versions.
Save the idea
Every time I play with some specific feature or programming approach, the result ends always wired to some specific app or just thrown away completely.
Monorepo as a solution
All those mentioned issues forced me to think about how to continue with all my habits and write open source with maintainable code base. And I realised that my personal monorepo could be a solution for all the issues listed above.
- Using one codebase for every piece of contribution ensures repo is always up to date. I agree, that sometimes it might be harder to maintain global codebase.
- Using one codebase forces project to be well scaled and to have proper testing (to not break anything accidentally).
- Using modular system for Android project allows to have multiple applications based on the same core/feature modules.
- Modular system allows to add any idea into up-to-date codebase at any time pretty quickly.
- Using one codebase will force us to carefully think about existing features whether they are still worth to have them in the repo.
I truly believe to this approach. Let’s see how it will work 🙂
Happy Coding! MJ