Skip to content

Commit f5574cc

Browse files
authored
Merge pull request #202 from YAPP-Github/refactor/#200-gradle-modernization
[Refactor/#200] Gradle 설정 최신화 및 앱 버전 관리 아키텍처 개선
2 parents 4ae9e13 + 1f12e43 commit f5574cc

File tree

48 files changed

+216
-253
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+216
-253
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@ import java.util.Properties
33
plugins {
44
alias(libs.plugins.bitnagil.android.application)
55
alias(libs.plugins.bitnagil.android.hilt)
6-
alias(libs.plugins.kotlin.serialization)
6+
alias(libs.plugins.bitnagil.kotlin.serialization)
77
}
88

99
android {
10-
namespace = "com.threegap.bitnagil"
11-
1210
val properties =
1311
Properties().apply {
1412
val propFile = rootProject.file("local.properties")

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:tools="http://schemas.android.com/tools">
3+
xmlns:tools="http://schemas.android.com/tools"
4+
android:installLocation="internalOnly">
45

56
<uses-permission android:name="android.permission.INTERNET" />
67
<uses-permission android:name="android.permission.CAMERA" />

app/src/main/java/com/threegap/bitnagil/MainNavHost.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.threegap.bitnagil
22

33
import androidx.compose.runtime.Composable
44
import androidx.compose.ui.Modifier
5-
import androidx.hilt.navigation.compose.hiltViewModel
5+
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
66
import androidx.navigation.compose.NavHost
77
import androidx.navigation.compose.composable
88
import androidx.navigation.toRoute
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.threegap.bitnagil.di.data
2+
3+
import com.threegap.bitnagil.BuildConfig
4+
import dagger.Module
5+
import dagger.Provides
6+
import dagger.hilt.InstallIn
7+
import dagger.hilt.components.SingletonComponent
8+
import javax.inject.Named
9+
10+
@Module
11+
@InstallIn(SingletonComponent::class)
12+
object AppVersionModule {
13+
14+
@Provides
15+
@Named("versionMajor")
16+
fun provideVersionMajor(): Int = BuildConfig.VERSION_MAJOR
17+
18+
@Provides
19+
@Named("versionMinor")
20+
fun provideVersionMinor(): Int = BuildConfig.VERSION_MINOR
21+
22+
@Provides
23+
@Named("versionPatch")
24+
fun provideVersionPatch(): Int = BuildConfig.VERSION_PATCH
25+
}

app/src/main/java/com/threegap/bitnagil/di/presentation/VersionNameProviderModule.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.threegap.bitnagil.di.presentation
22

3-
import com.threegap.bitnagil.presentation.util.version.AndroidApplicationVersionNameProvider
43
import com.threegap.bitnagil.presentation.util.version.VersionNameProvider
4+
import com.threegap.bitnagil.util.version.PackageManagerVersionNameProvider
55
import dagger.Binds
66
import dagger.Module
77
import dagger.hilt.InstallIn
@@ -13,5 +13,5 @@ import javax.inject.Singleton
1313
abstract class VersionNameProviderModule {
1414
@Binds
1515
@Singleton
16-
abstract fun bindVersionNameProvider(androidApplicationVersionNameProvider: AndroidApplicationVersionNameProvider): VersionNameProvider
16+
abstract fun bindVersionNameProvider(impl: PackageManagerVersionNameProvider): VersionNameProvider
1717
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.threegap.bitnagil.util.version
2+
3+
import android.content.Context
4+
import com.threegap.bitnagil.presentation.util.version.VersionNameProvider
5+
import dagger.hilt.android.qualifiers.ApplicationContext
6+
import javax.inject.Inject
7+
8+
class PackageManagerVersionNameProvider @Inject constructor(
9+
@param:ApplicationContext private val context: Context,
10+
) : VersionNameProvider {
11+
override fun getVersionName(): String =
12+
context.packageManager.getPackageInfo(context.packageName, 0).versionName.orEmpty()
13+
}

build-logic/convention/build.gradle.kts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,15 @@ gradlePlugin {
4646
id = "bitnagil.kotlin"
4747
implementationClass = "com.threegap.bitnagil.convention.KotlinJvmPlugin"
4848
}
49+
50+
register("kotlinSerialization") {
51+
id = "bitnagil.kotlin.serialization"
52+
implementationClass = "com.threegap.bitnagil.convention.KotlinSerializationPlugin"
53+
}
54+
55+
register("kotlinParcelize") {
56+
id = "bitnagil.kotlin.parcelize"
57+
implementationClass = "com.threegap.bitnagil.convention.KotlinParcelizePlugin"
58+
}
4959
}
5060
}

build-logic/convention/src/main/java/com/threegap/bitnagil/convention/AndroidApplicationPlugin.kt

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,30 @@
11
package com.threegap.bitnagil.convention
22

33
import com.android.build.api.dsl.ApplicationExtension
4+
import com.threegap.bitnagil.convention.extension.basePackage
45
import com.threegap.bitnagil.convention.extension.configureAppVersion
5-
import com.threegap.bitnagil.convention.extension.configureApplicationId
66
import com.threegap.bitnagil.convention.extension.configureComposeAndroid
77
import com.threegap.bitnagil.convention.extension.configureKotlinAndroid
8+
import com.threegap.bitnagil.convention.extension.libs
89
import org.gradle.api.Plugin
910
import org.gradle.api.Project
10-
import org.gradle.api.artifacts.VersionCatalogsExtension
11-
import org.gradle.kotlin.dsl.getByType
1211
import org.gradle.kotlin.dsl.configure
1312

1413
class AndroidApplicationPlugin : Plugin<Project> {
1514
override fun apply(target: Project): Unit = with(target) {
1615
pluginManager.apply {
1716
apply("com.android.application")
18-
apply("org.jetbrains.kotlin.android")
1917
apply("org.jetbrains.kotlin.plugin.compose")
18+
apply("org.jlleitschuh.gradle.ktlint")
2019
}
2120

22-
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
2321
extensions.configure<ApplicationExtension> {
2422
configureKotlinAndroid(this)
2523
configureComposeAndroid(this)
26-
configureAppVersion()
27-
configureApplicationId()
24+
configureAppVersion(this)
2825
with(defaultConfig) {
26+
applicationId = basePackage
2927
targetSdk = libs.findVersion("targetSdk").get().requiredVersion.toInt()
30-
versionCode = libs.findVersion("versionCode").get().requiredVersion.toInt()
3128
}
3229
}
3330
}

build-logic/convention/src/main/java/com/threegap/bitnagil/convention/AndroidComposePlugin.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.threegap.bitnagil.convention
22

3-
import com.android.build.gradle.LibraryExtension
3+
import com.android.build.api.dsl.LibraryExtension
44
import com.threegap.bitnagil.convention.extension.configureComposeAndroid
55
import org.gradle.api.Plugin
66
import org.gradle.api.Project
Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.threegap.bitnagil.convention
22

3-
import com.android.build.gradle.LibraryExtension
4-
import com.threegap.bitnagil.convention.extension.configureAppVersion
5-
import com.threegap.bitnagil.convention.extension.configureApplicationId
3+
import com.android.build.api.dsl.LibraryExtension
64
import com.threegap.bitnagil.convention.extension.configureKotlinAndroid
75
import com.threegap.bitnagil.convention.extension.configureKotlinCoroutine
86
import org.gradle.api.Plugin
@@ -13,14 +11,12 @@ class AndroidLibraryPlugin : Plugin<Project> {
1311
override fun apply(target: Project): Unit = with(target) {
1412
pluginManager.apply {
1513
apply("com.android.library")
16-
apply("org.jetbrains.kotlin.android")
14+
apply("org.jlleitschuh.gradle.ktlint")
1715
}
1816

1917
extensions.configure<LibraryExtension> {
2018
configureKotlinAndroid(this)
21-
configureKotlinCoroutine(this)
22-
configureAppVersion()
23-
configureApplicationId()
19+
configureKotlinCoroutine()
2420
}
2521
}
2622
}

0 commit comments

Comments
 (0)