Monorepo

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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create a website or blog at WordPress.com

Up ↑

%d bloggers like this: