https://kotlinlang.org logo
Title
g

Gunslingor

07/30/2019, 6:25 PM
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

robstoll

07/30/2019, 6:29 PM
do you release components individually?
g

Gunslingor

07/30/2019, 6:30 PM
I probably will be....
yeah, I see it very possible to releasing only 1/4 modules/components
r

robstoll

07/30/2019, 6:30 PM
does a bug usually concern multiple components or just one
c

Casey Brooks

07/30/2019, 6:32 PM
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

Gunslingor

07/30/2019, 6:33 PM
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

Casey Brooks

07/30/2019, 6:38 PM
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

Gunslingor

07/30/2019, 6:39 PM
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

Casey Brooks

07/30/2019, 6:41 PM
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

Josh Feinberg

07/30/2019, 6:42 PM
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

Gunslingor

07/30/2019, 6:43 PM
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

Leo Na

07/31/2019, 4:12 AM
Lots of comments 😄 I would do
mono-repo
(not monolithic, not git module)
f

fangzhzh

07/31/2019, 7:37 PM