Skip to content

Commit

Permalink
Migrating android source to platform specific
Browse files Browse the repository at this point in the history
  • Loading branch information
kirich1409 committed Jun 18, 2024
1 parent 866c017 commit 80563ba
Show file tree
Hide file tree
Showing 43 changed files with 263 additions and 149 deletions.
2 changes: 2 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ plugins {
alias(libs.plugins.android.test) apply false
alias(libs.plugins.baselineprofile) apply false
alias(libs.plugins.compose.compiler) apply false
alias(libs.plugins.jetbrainsCompose) apply false
alias(libs.plugins.kotlinMultiplatform) apply false
}

// TODO Replace Detekt Gradle with terminal launch
Expand Down
38 changes: 25 additions & 13 deletions core/common/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,34 +1,46 @@
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)

import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

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

kotlin {
explicitApi = ExplicitApiMode.Strict

androidTarget {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8)
}
}

sourceSets {
commonMain.dependencies {
api(libs.kotlinx.coroutines.core)
api(libs.kotlinx.immutable)
}

androidMain.dependencies {
implementation(libs.androidx.core.ktx)
api(libs.kotlinx.coroutines.android)
}
}
}

android {
namespace = "dev.androidbroadcast.news.common"
compileSdk = 34
compileSdk = libs.versions.androidSdk.min.get().toInt()

defaultConfig {
minSdk = 24
compileSdk = libs.versions.androidSdk.compile.get().toInt()
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = "1.8"
}
}

dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.kotlinx.coroutines.core)
api(libs.kotlinx.immutable)
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,6 @@ package dev.androidbroadcast.common

import android.util.Log

public interface Logger {
public fun d(
tag: String,
message: String
)

public fun e(
tag: String,
message: String
)
}

public fun AndroidLogcatLogger(): Logger =
object : Logger {
override fun d(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package dev.androidbroadcast.common

public interface Logger {
public fun d(
tag: String,
message: String
)

public fun e(
tag: String,
message: String
)
}
46 changes: 28 additions & 18 deletions core/data/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,39 +1,49 @@
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)

import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

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

kotlin {
explicitApi = ExplicitApiMode.Strict

androidTarget {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8)
}
}

sourceSets {
commonMain.dependencies {
implementation(libs.kotlinx.coroutines.core)
implementation(projects.core.common)
implementation(projects.core.database)
implementation(projects.core.opennewsApi)
}

androidMain.dependencies {
implementation(libs.kotlinx.coroutines.android)
implementation(libs.androidx.core.ktx)
implementation(libs.javax.inject)
}
}
}

android {
namespace = "dev.androidbroadcast.news.data"
compileSdk = 34
compileSdk = libs.versions.androidSdk.min.get().toInt()

defaultConfig {
minSdk = 24
compileSdk = libs.versions.androidSdk.compile.get().toInt()
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = "1.8"
}
}

dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.kotlinx.coroutines.android)

implementation(projects.core.database)
implementation(projects.core.opennewsApi)
implementation(projects.core.common)

implementation(libs.javax.inject)
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,3 @@ public data class Article(
}
}

public data class Source(
val id: String,
val name: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package dev.androidbroadcast.news.data.model

public data class Source(
val id: String,
val name: String
)
34 changes: 26 additions & 8 deletions core/database/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,16 +1,39 @@
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)

import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
alias(libs.plugins.androidLibrary)
alias(libs.plugins.jetbrainsKotlinAndroid)
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.ksp)
alias(libs.plugins.androidx.room)
}

kotlin {
androidTarget {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8)
}
}

sourceSets {
commonMain.dependencies {
}

androidMain.dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.room.ktx)
}
}
}

android {
namespace = "dev.androidbroadcast.news.database"
compileSdk = 34
compileSdk = libs.versions.androidSdk.min.get().toInt()

defaultConfig {
minSdk = 24
compileSdk = libs.versions.androidSdk.compile.get().toInt()
}

buildTypes {
Expand All @@ -22,17 +45,12 @@ android {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}

room {
schemaDirectory("${rootProject.projectDir}/schemas")
}

dependencies {
implementation(libs.androidx.core.ktx)
ksp(libs.androidx.room.compiler)
implementation(libs.androidx.room.ktx)
}
51 changes: 37 additions & 14 deletions core/opennews-api/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,21 +1,44 @@
plugins {
alias(libs.plugins.jetbrainsKotlinJvm)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.kapt)
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidLibrary)
// KAPT не поддерживает KMP
}

java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
kotlin {
androidTarget()

sourceSets {
commonMain.dependencies {
implementation(libs.kotlinx.coroutines.core)
api(libs.kotlinx.serialization.json)
}

androidMain.dependencies {
implementation(libs.retrofit)
implementation(libs.androidx.annotation)
implementation(libs.retrofit.converter.kotlinx.serialization)
implementation(libs.retrofit.adapters.result)
api(libs.okhttp)
}
}
}

dependencies {
implementation(libs.retrofit)
implementation(libs.kotlinx.coroutines.core)
api(libs.kotlinx.serialization.json)
implementation(libs.androidx.annotation)
implementation(libs.retrofit.converter.kotlinx.serialization)
implementation(libs.retrofit.adapters.result)
api(libs.okhttp)
kapt(libs.retrofit.responseTypeKeeper)
android {
namespace = "dev.androidbroadcast.news.database"
compileSdk = libs.versions.androidSdk.min.get().toInt()

defaultConfig {
compileSdk = libs.versions.androidSdk.compile.get().toInt()
}

buildTypes {
release {
isMinifyEnabled = false
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
56 changes: 37 additions & 19 deletions core/uikit/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,35 +1,53 @@
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)

import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
alias(libs.plugins.androidLibrary)
alias(libs.plugins.jetbrainsKotlinAndroid)
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.detekt)
}

kotlin {
androidTarget {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8)
}
}

sourceSets {
commonMain.dependencies {
api(compose.ui)
api(compose.runtime)
api(compose.foundation)
api(compose.material3)
implementation(compose.components.uiToolingPreview)
}

androidMain.dependencies {
implementation(libs.androidx.core.ktx)
// Need only for debug
implementation(libs.androidx.compose.ui.tooling)
// Need only for debug
implementation(libs.androidx.compose.ui.test.manifest)
implementation(project.dependencies.platform(libs.androidx.compose.bom))
}
}
}

android {
namespace = "dev.androidbroadcast.news.uikit"
compileSdk = 34
compileSdk = libs.versions.androidSdk.min.get().toInt()

defaultConfig {
minSdk = 24
compileSdk = libs.versions.androidSdk.compile.get().toInt()
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = "1.8"
}
}

dependencies {
implementation(libs.androidx.core.ktx)
implementation(platform(libs.androidx.compose.bom))
api(libs.androidx.compose.ui)
api(libs.androidx.compose.ui.graphics)
api(libs.androidx.compose.ui.tooling.preview)
api(libs.androidx.compose.runtime)
api(libs.androidx.material3)
debugApi(libs.androidx.compose.ui.tooling)
debugApi(libs.androidx.compose.ui.test.manifest)
}
4 changes: 0 additions & 4 deletions core/uikit/src/main/AndroidManifest.xml

This file was deleted.

Loading

0 comments on commit 80563ba

Please sign in to comment.