Daniel Weidensdörfer
10/23/2024, 4:23 PMian.shaun.thomas
10/23/2024, 4:41 PMshared
that implement whatever features you need and have shared
depend on those modules via implementation(projects.myOtherModule)
or implementation(project(":myOtherModule"))
if you aren't using the project accessors feature
https://github.com/android/kotlin-multiplatform-samples/tree/main/FruittiesDaniel Weidensdörfer
10/23/2024, 6:06 PMDaniel Weidensdörfer
10/23/2024, 6:11 PMian.shaun.thomas
10/23/2024, 11:00 PMDaniel Weidensdörfer
10/24/2024, 10:46 AMian.shaun.thomas
10/24/2024, 2:59 PMDaniel Weidensdörfer
10/24/2024, 3:01 PMian.shaun.thomas
10/24/2024, 3:04 PMroot
/composite
/custom-plugin-a
/custom-plugin-b
/custom-plugin-c
/android-common
/module-a
/module-b
/module-c
/kmp-common
/module-a
/module-b
/module-c
/smart-tv
/common
/brand-a
/brand-b
/brand-c
/android-tv
I'd recommend coming up with an organization hierarchy that makes sense for you/your team but it can be generally anything you like. Note we use composite builds to go even further where we have built custom plugins that are completely isolated gradle projects. This helps with caching over using buildSrc
and enables us to open them as isolated projects in intellj without loading the greater project which can make it a lot faster to test plugin changes.Daniel Weidensdörfer
10/24/2024, 8:11 PM