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 15, 2024
1 parent 8c4109e commit 431abfa
Show file tree
Hide file tree
Showing 37 changed files with 225 additions and 132 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
33 changes: 22 additions & 11 deletions core/common/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,12 +1,33 @@
@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)
api(libs.kotlinx.immutable)
}

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

android {
Expand All @@ -21,14 +42,4 @@ android {
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
)
}
39 changes: 23 additions & 16 deletions core/data/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,12 +1,34 @@
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 {
Expand All @@ -21,19 +43,4 @@ android {
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)
}
30 changes: 24 additions & 6 deletions core/database/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,33 @@
@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
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)
}
34 changes: 21 additions & 13 deletions core/opennews-api/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,21 +1,29 @@
plugins {
alias(libs.plugins.jetbrainsKotlinJvm)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.kapt)
alias(libs.plugins.kotlinMultiplatform)
// KAPT не поддерживает KMP
}

kotlin {
jvm()

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

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

java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

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)
}
52 changes: 35 additions & 17 deletions core/uikit/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,41 @@
@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 {
Expand All @@ -16,20 +50,4 @@ android {
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.

52 changes: 33 additions & 19 deletions features/news-main/ui-logic/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,18 +1,48 @@
@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)
alias(libs.plugins.dagger.hilt.android)
alias(libs.plugins.kapt)
// Dagger Hilt нужно будет менять на мультиплатформенное решение
}

kotlin {
explicitApi = ExplicitApiMode.Strict

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

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

androidMain.dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.lifecycle.viewmodel.ktx)

implementation(libs.kotlinx.coroutines.android)

compileOnly(libs.androidx.compose.runtime)
implementation(libs.dagger.hilt.android)
}
}
}

android {
namespace = "dev.androidbroadcast.news.main"
namespace = "dev.androidbroadcast.news.main.uilogic"
compileSdk = libs.versions.androidSdk.compile.get().toInt()

defaultConfig {
Expand All @@ -24,24 +54,8 @@ android {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = "1.8"
}
}

dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.lifecycle.viewmodel.ktx)

implementation(libs.kotlinx.coroutines.android)

compileOnly(libs.androidx.compose.runtime)
api(libs.kotlinx.immutable)

api(projects.core.data)

implementation(libs.dagger.hilt.android)
kapt(libs.dagger.hilt.compiler)
"kapt"(libs.dagger.hilt.compiler)
}
Loading

0 comments on commit 431abfa

Please sign in to comment.