Skip to content

Commit

Permalink
Create :core:domain module
Browse files Browse the repository at this point in the history
  • Loading branch information
hicka04 committed Sep 25, 2024
1 parent c6b9372 commit c76e2bb
Show file tree
Hide file tree
Showing 9 changed files with 120 additions and 0 deletions.
51 changes: 51 additions & 0 deletions core/domain/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XCFramework
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidLibrary)
}

kotlin {
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = JvmTarget.JVM_11.target
}
}
}

val xcf = XCFramework()
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach {
it.binaries.framework {
baseName = "domain"
xcf.add(this)
isStatic = true
}
}

sourceSets {
commonMain.dependencies {
//put your multiplatform dependencies here
}
commonTest.dependencies {
implementation(libs.kotlin.test)
}
}
}

android {
namespace = "dev.hicka04.pokedex.core.domain"
compileSdk = libs.versions.android.compileSdk.get().toInt()
defaultConfig {
minSdk = libs.versions.android.minSdk.get().toInt()
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package dev.hicka04.pokedex.core.domain

class AndroidPlatform : Platform {
override val name: String = "Android ${android.os.Build.VERSION.SDK_INT}"
}

actual fun getPlatform(): Platform = AndroidPlatform()
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package dev.hicka04.pokedex.core.domain

import org.junit.Assert.assertTrue
import org.junit.Test

class AndroidGreetingTest {

@Test
fun testExample() {
assertTrue("Check Android is mentioned", Greeting().greet().contains("Android"))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package dev.hicka04.pokedex.core.domain

class Greeting {
private val platform: Platform = getPlatform()

fun greet(): String {
return "Hello, ${platform.name}!"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package dev.hicka04.pokedex.core.domain

interface Platform {
val name: String
}

expect fun getPlatform(): Platform
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package dev.hicka04.pokedex.core.domain

import kotlin.test.Test
import kotlin.test.assertTrue

class CommonGreetingTest {

@Test
fun testExample() {
assertTrue(Greeting().greet().contains("Hello"), "Check 'Hello' is mentioned")
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package dev.hicka04.pokedex.core.domain

import platform.UIKit.UIDevice

class IOSPlatform: Platform {
override val name: String = UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion
}

actual fun getPlatform(): Platform = IOSPlatform()
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package dev.hicka04.pokedex.core.domain

import kotlin.test.Test
import kotlin.test.assertTrue

class IosGreetingTest {

@Test
fun testExample() {
assertTrue(Greeting().greet().contains("iOS"), "Check iOS is mentioned")
}
}
1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,4 @@ dependencyResolutionManagement {
include(":composeApp")
include(":core:model")
include(":core:network")
include(":core:domain")

0 comments on commit c76e2bb

Please sign in to comment.