Skip to content

Commit

Permalink
Merge pull request #157 from Team-B1ND/feature/156-data-layer-modules…
Browse files Browse the repository at this point in the history
…-kmm

Data Layer Modules To Kotlin Multiplatform Module
  • Loading branch information
8954sood committed Aug 8, 2024
2 parents 753cd86 + e1319af commit 3347cd8
Show file tree
Hide file tree
Showing 78 changed files with 254 additions and 120 deletions.
4 changes: 4 additions & 0 deletions build-logic/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@ gradlePlugin {
id = "b1nd.dodam.primitive.multiplatform"
implementationClass = "com.b1nd.dodam.primitive.MultiplatformPlugin"
}
register("multiplatformKotlin") {
id = "b1nd.dodam.primitive.multiplatform.kotlin"
implementationClass = "com.b1nd.dodam.primitive.MultiplatformKotlinPlugin"
}
register("multiplatformKotlinSerialization") {
id = "b1nd.dodam.primitive.multiplatform.kotlin.serialization"
implementationClass = "com.b1nd.dodam.primitive.MultiplatformKotlinSerializationPlugin"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ fun Project.kotlin(block: KotlinMultiplatformExtension.() -> Unit) {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
fun Project.setupMultiplatform() {
kotlin {
// Task testClasses not found problem solve
task("testClasses")
androidTarget {
compilations.all {
kotlinOptions {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.b1nd.dodam.primitive

import com.b1nd.dodam.dsl.android
import com.b1nd.dodam.dsl.implementation
import com.b1nd.dodam.dsl.kotlin
import com.b1nd.dodam.dsl.kotlinOptions
import com.b1nd.dodam.dsl.library
import com.b1nd.dodam.dsl.libs
import org.gradle.api.JavaVersion
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.assign
import org.gradle.kotlin.dsl.dependencies
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

@OptIn(ExperimentalKotlinGradlePluginApi::class)
class MultiplatformKotlinPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
tasks.withType(KotlinCompile::class.java) {
kotlinOptions.jvmTarget = JavaVersion.VERSION_17.toString()
}

kotlin {
compilerOptions {
freeCompilerArgs.addAll(
listOf(
"-opt-in=kotlin.RequiresOptIn",
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
"-Xcontext-receivers"
)
)
}
sourceSets.commonMain.dependencies {
implementation(libs.library("kotlinx-coroutines-core"))
implementation(libs.library("kotlinx-collections-immutable"))
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package com.b1nd.dodam.common.utiles

expect fun String.Companion.javaFormat(format: String, vararg args: Any?): String
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.b1nd.dodam.common.utiles

import platform.Foundation.NSString
import platform.Foundation.stringWithFormat

actual fun String.Companion.javaFormat(format: String, vararg args: Any?): String = NSString.stringWithFormat(format, args)
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package com.b1nd.dodam.common.utiles

actual fun String.Companion.javaFormat(format: String, vararg args: Any?): String = String.format(format, args)
21 changes: 14 additions & 7 deletions data/banner/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
import com.b1nd.dodam.dsl.android
import com.b1nd.dodam.dsl.kotlin
import com.b1nd.dodam.dsl.setIOS

plugins {
alias(libs.plugins.dodam.android)
alias(libs.plugins.dodam.android.kotlin)
alias(libs.plugins.dodam.koin)
alias(libs.plugins.dodam.multiplatform)
alias(libs.plugins.dodam.multiplatform.kotlin)
alias(libs.plugins.dodam.multiplatform.koin)
}

kotlin {
setIOS("data.banner")

sourceSets.commonMain.dependencies {
implementation(projects.common)
implementation(projects.network.banner)
}
}

android {
Expand All @@ -16,7 +27,3 @@ android {
}
}

dependencies {
implementation(projects.common)
implementation(projects.network.banner)
}
23 changes: 15 additions & 8 deletions data/bus/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,20 +1,27 @@
import com.b1nd.dodam.dsl.android
import com.b1nd.dodam.dsl.kotlin
import com.b1nd.dodam.dsl.setIOS

plugins {
alias(libs.plugins.dodam.android)
alias(libs.plugins.dodam.android.kotlin)
alias(libs.plugins.dodam.koin)
alias(libs.plugins.dodam.multiplatform)
alias(libs.plugins.dodam.multiplatform.kotlin)
alias(libs.plugins.dodam.multiplatform.koin)
}

kotlin {
setIOS("data.bus")

sourceSets.commonMain.dependencies {
implementation(projects.common)
implementation(projects.network.bus)
}
}


android {
namespace = "com.b1nd.dodam.data.bus"

defaultConfig {
consumerProguardFiles("consumer-rules.pro")
}
}

dependencies {
implementation(projects.common)
implementation(projects.network.bus)
}
26 changes: 16 additions & 10 deletions data/core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,23 @@
import com.b1nd.dodam.dsl.android
import com.b1nd.dodam.dsl.kotlin
import com.b1nd.dodam.dsl.setIOS

plugins {
alias(libs.plugins.dodam.android)
alias(libs.plugins.dodam.android.kotlin)
alias(libs.plugins.dodam.multiplatform)
alias(libs.plugins.dodam.multiplatform.kotlin)
}

kotlin {
setIOS("data.core")

sourceSets.commonMain.dependencies {
implementation(projects.common)
implementation(projects.network.core)

}
}


android {
android {
namespace = "com.b1nd.dodam.data.core"
Expand All @@ -13,11 +26,4 @@ android {
consumerProguardFiles("consumer-rules.pro")
}
}
}

dependencies {
implementation(projects.network.core)
implementation(projects.common)

implementation(libs.kotlinx.collections.immutable)
}
}
23 changes: 15 additions & 8 deletions data/login/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,21 @@
import com.b1nd.dodam.dsl.android
import com.b1nd.dodam.dsl.kotlin
import com.b1nd.dodam.dsl.setIOS

plugins {
alias(libs.plugins.dodam.android)
alias(libs.plugins.dodam.android.kotlin)
alias(libs.plugins.dodam.koin)
alias(libs.plugins.dodam.multiplatform)
alias(libs.plugins.dodam.multiplatform.kotlin)
alias(libs.plugins.dodam.multiplatform.koin)
}

kotlin {
setIOS("data.login")

sourceSets.commonMain.dependencies {
implementation(projects.common)
implementation(projects.network.login)

}
}

android {
Expand All @@ -13,8 +25,3 @@ android {
consumerProguardFiles("consumer-rules.pro")
}
}

dependencies {
implementation(projects.common)
implementation(projects.network.login)
}
24 changes: 14 additions & 10 deletions data/meal/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
import com.b1nd.dodam.dsl.android
import com.b1nd.dodam.dsl.kotlin
import com.b1nd.dodam.dsl.setIOS

plugins {
alias(libs.plugins.dodam.android)
alias(libs.plugins.dodam.android.kotlin)
alias(libs.plugins.dodam.koin)
alias(libs.plugins.dodam.multiplatform)
alias(libs.plugins.dodam.multiplatform.kotlin)
alias(libs.plugins.dodam.multiplatform.koin)
}

kotlin {
setIOS("data.meal")

sourceSets.commonMain.dependencies {
implementation(projects.common)
implementation(projects.network.meal)

}
}
android {
android {
namespace = "com.b1nd.dodam.data.meal"
Expand All @@ -15,10 +26,3 @@ android {
}
}
}

dependencies {
implementation(projects.network.meal)
implementation(projects.common)

implementation(libs.kotlinx.collections.immutable)
}
27 changes: 17 additions & 10 deletions data/member/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,22 @@
import com.b1nd.dodam.dsl.android
import com.b1nd.dodam.dsl.kotlin
import com.b1nd.dodam.dsl.setIOS

plugins {
alias(libs.plugins.dodam.android)
alias(libs.plugins.dodam.android.kotlin)
alias(libs.plugins.dodam.koin)
alias(libs.plugins.dodam.multiplatform)
alias(libs.plugins.dodam.multiplatform.kotlin)
alias(libs.plugins.dodam.multiplatform.koin)
}

kotlin {
setIOS("data.member")

sourceSets.commonMain.dependencies {
implementation(projects.data.core)
implementation(projects.common)
implementation(projects.network.member)

}
}

android {
Expand All @@ -14,10 +27,4 @@ android {
consumerProguardFiles("consumer-rules.pro")
}
}
}

dependencies {
implementation(projects.network.member)
implementation(projects.data.core)
implementation(projects.common)
}
}
28 changes: 17 additions & 11 deletions data/night-study/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
import com.b1nd.dodam.dsl.android
import com.b1nd.dodam.dsl.kotlin
import com.b1nd.dodam.dsl.setIOS

plugins {
alias(libs.plugins.dodam.android)
alias(libs.plugins.dodam.android.kotlin)
alias(libs.plugins.dodam.koin)
alias(libs.plugins.dodam.multiplatform)
alias(libs.plugins.dodam.multiplatform.kotlin)
alias(libs.plugins.dodam.multiplatform.koin)
}

kotlin {
setIOS("data.nightstudy")

sourceSets.commonMain.dependencies {
api(projects.data.core)
implementation(projects.common)
implementation(projects.network.nightStudy)

}
}


android {
android {
namespace = "com.b1nd.dodam.data.nightstudy"
Expand All @@ -15,11 +29,3 @@ android {
}
}
}

dependencies {
api(projects.data.core)
implementation(projects.network.nightStudy)
implementation(projects.common)

implementation(libs.kotlinx.collections.immutable)
}
28 changes: 17 additions & 11 deletions data/outing/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
import com.b1nd.dodam.dsl.android
import com.b1nd.dodam.dsl.kotlin
import com.b1nd.dodam.dsl.setIOS

plugins {
alias(libs.plugins.dodam.android)
alias(libs.plugins.dodam.android.kotlin)
alias(libs.plugins.dodam.koin)
alias(libs.plugins.dodam.multiplatform)
alias(libs.plugins.dodam.multiplatform.kotlin)
alias(libs.plugins.dodam.multiplatform.koin)
}

kotlin {
setIOS("data.outing")

sourceSets.commonMain.dependencies {
api(projects.data.core)
implementation(projects.common)
implementation(projects.network.outing)

}
}


android {
android {
namespace = "com.b1nd.dodam.data.outing"
Expand All @@ -15,11 +29,3 @@ android {
}
}
}

dependencies {
api(projects.data.core)
implementation(projects.network.outing)
implementation(projects.common)

implementation(libs.kotlinx.collections.immutable)
}
Loading

0 comments on commit 3347cd8

Please sign in to comment.