I'm building a product/company that will need a an...
# announcements
g
I'm building a product/company that will need a android app, an ios app, a spring+kotlin backend and an angular cli frontend. So far trying to do all these in a single IntelliJ window has proven tough, so I sort of decided to run them as separate projects even though they are related to the same overall product. I sort of wanted to have them all in a single git repo, but I'm thinking now about separating them their too.... but then I might use kotlin native/multiplatform for the ios/android stuff so suspect a single git is better for this... trying to lay this out. Should I do 4 repos or one? How would I or do I want to treat these as one intelliJ project?
r
do you release components individually?
g
I probably will be....
yeah, I see it very possible to releasing only 1/4 modules/components
r
does a bug usually concern multiple components or just one
c
Personally, I’d go with separate repos if you plan on versioning/releasing each piece separately. I put things in the same repo (in different Gradle subprojects) if they are strongly connected and need to always be released together. Usually, this means that I keep multi-module libraries in the same repo, and keep apps in different repos
g
Likely and hopefully just one... but very possibly all... like if I had a bug that requires me to add a first name to a DB, I'd probably add the field to the DB, modify the rest so it can be gathered by users and then would probably need to update the webserver frontend.
I think you are all correct...
when I started this project I was hoping to do everything with kotlin in one project... that dream is dieing with each accomplishment though,lol
I wish git allowed grouping repos into folders... oh well, I got an organization... good enough for now.
thanks guys.
c
I wish git allowed grouping repos into folders
It does, with submodules https://git-scm.com/book/en/v2/Git-Tools-Submodules
And Gradle can take advantage of that too, with composite builds https://docs.gradle.org/current/userguide/composite_builds.html
g
I've read quite a bit about submodules and trees... seems a little used feature, problematic per lots of people I've asked... also have to ask myself why no git gui's offer this.
gradle is new to me and kts gradle has been kicking my butt.
c
GitKraken actually does support submodules, and works quite nicely. Its the only one that makes submodules feel in any way natural or useful. I’ve got a couple projects that I use as submodules, and once you get the hang of it it works really well. https://www.gitkraken.com/git-client
j
i actually have been working on a kotlin multiplatform project all in a single repo
its worked fine. CI would be a nightmare but i haven't been worried about that
g
THANKYOU!!! I will definitely check that out. I suspect all 4 components will/should use a different build system... angular CLI front end wont really use gradle I guess it uses itself, the backend spring boot kotlin will use gradle, then I suspect the android app will use gradle and the IOS will use some apple crap, lol.
l
Lots of comments 😄 I would do
mono-repo
(not monolithic, not git module)
f