KMM - Monorepo or Multirepo?
Hi all. In the last weeks as we’ve been setting up our KMM project, we came across interesting debate about which repo approach should we use - mono repo or multi repo.
What are you guys using in your KMM projects? Are there any issues you’ve faced that made you switch repo from mono to multi or vice versa?
Both of these approaches have its own pros and cons, but I see more pros in using multi repo approach (shared logic added as a git submodule into ios/android repo):
• smaller repo size (specially in the future there may be platform specific binaries in the repo, same goes for assets…)
• platform specific CI settings, versioning (tags), pull requests and branches
• no need to clone whole project, specially as there are some guys on android and some guys working on iOS project
• in the future there might be other platforms using shared module and having all platforms in one repo does not make sense IMO.
• and so on
One challenge is, how to assure “green-develop/master” on shared module. We’ve been thinking about approach where some feature will be implemented, and there will be changes on common repo. We could probably open a pull request and once tests and everything is green, git workflow could open PR’s for iOS and Android as well.
Any opinions, feedback how you guys face this? What are best practices for huge projects?