From 97862a138f5f55e881ce6abf3843ba5935931e6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=BC=ED=98=81?= Date: Mon, 5 Oct 2026 05:50:07 +0000 Subject: [PATCH] =?UTF-8?q?maintenance(platform):=20=EC=93=B0=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8A=94=20hilt-navigation-compose=20=EC=9D=98?= =?UTF-8?q?=EC=A1=B4=EA=B3=BC=20feature=20=EC=BB=A8=EB=B2=A4=EC=85=98=20?= =?UTF-8?q?=ED=94=8C=EB=9F=AC=EA=B7=B8=EC=9D=B8=20=EC=A0=9C=EA=B1=B0=20(#2?= =?UTF-8?q?247)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit app·afternote·receiver·setting 은 androidx.hilt.navigation.* 를 import 하지 않고 hiltViewModel 은 Hilt 컨벤션의 hilt-lifecycle-viewmodel-compose 에서 받는다. AndroidFeatureConventionPlugin 은 적용하는 모듈이 없어 등록과 konsist 목록 항목까지 걷는다. --- .github/scripts/ktlint-coverage.mjs | 4 ++-- app/build.gradle.kts | 1 - build-logic/build.gradle.kts | 4 ---- .../kotlin/AndroidFeatureConventionPlugin.kt | 24 ------------------- .../afternote/presentation/build.gradle.kts | 1 - .../receiver/presentation/build.gradle.kts | 1 - feature/setting/presentation/build.gradle.kts | 1 - .../ExplicitApiModulePolicyKonsistTest.kt | 1 - 8 files changed, 2 insertions(+), 35 deletions(-) delete mode 100644 build-logic/src/main/kotlin/AndroidFeatureConventionPlugin.kt diff --git a/.github/scripts/ktlint-coverage.mjs b/.github/scripts/ktlint-coverage.mjs index 0b26d4537e..1d4ae62d04 100644 --- a/.github/scripts/ktlint-coverage.mjs +++ b/.github/scripts/ktlint-coverage.mjs @@ -8,8 +8,8 @@ // 「.kt 를 가진 모듈」이 아니라 **등록된 모듈 전부**다. // // ktlint 는 두 경로로 붙는다 — 모듈이 직접 적용하거나, ktlint 를 적용하는 컨벤션 플러그인을 -// 타거나. 컨벤션은 서로를 apply 하며 사슬을 이루므로(android.feature → android.library.compose → -// android.library → android.lint) 여기서 그 사슬의 전이 폐포를 계산한다. 컨벤션이 새로 생겨도 +// 타거나. 컨벤션은 서로를 apply 하며 사슬을 이루므로(android.library.compose → android.library → +// android.lint) 여기서 그 사슬의 전이 폐포를 계산한다. 컨벤션이 새로 생겨도 // 목록을 손으로 고칠 필요가 없다. import fs from "node:fs/promises"; diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 38b91e10e1..63c23985f0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -228,7 +228,6 @@ baselineProfile { dependencies { implementation(libs.coil.compose) - implementation(libs.androidx.hilt.navigation.compose) implementation(libs.core.splashscreen) // App Startup — 기동 초기화는 app 매니페스트에 등록한 Initializer 로 실행한다. diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index d4bcf871c5..ee72bb950d 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -90,10 +90,6 @@ gradlePlugin { id = "afternote.android.navigation" implementationClass = "AndroidNavigationConventionPlugin" } - register("androidFeature") { - id = "afternote.android.feature" - implementationClass = "AndroidFeatureConventionPlugin" - } register("androidData") { id = "afternote.android.data" implementationClass = "AndroidDataConventionPlugin" diff --git a/build-logic/src/main/kotlin/AndroidFeatureConventionPlugin.kt b/build-logic/src/main/kotlin/AndroidFeatureConventionPlugin.kt deleted file mode 100644 index d7d461e2c2..0000000000 --- a/build-logic/src/main/kotlin/AndroidFeatureConventionPlugin.kt +++ /dev/null @@ -1,24 +0,0 @@ -import org.gradle.api.Plugin -import org.gradle.api.Project - -class AndroidFeatureConventionPlugin : Plugin { - override fun apply(target: Project) { - with(target) { - with(pluginManager) { - // 1. 우리가 만든 플러그인들을 조합하여 'Feature' 성격 정의 - apply("afternote.android.library.compose") // 기본 SDK + UI - apply("afternote.android.hilt") // DI - // apply("afternote.android.navigation") // (아직 안 만들었다면 생성 필요) - } - - afterNoteDependencies { - // 2. 모든 피처 모듈이 공통으로 의존하는 내부 모듈 연결 - project(":core:ui") - project(":core:model") - - // 3. 피처 모듈 전용 라이브러리 (Hilt Navigation 등) - implementation("androidx-hilt-navigation-compose") - } - } - } -} diff --git a/feature/afternote/presentation/build.gradle.kts b/feature/afternote/presentation/build.gradle.kts index 51fc3ec066..0912d42ae5 100644 --- a/feature/afternote/presentation/build.gradle.kts +++ b/feature/afternote/presentation/build.gradle.kts @@ -32,7 +32,6 @@ dependencies { implementation(libs.coil.network.okhttp) implementation(libs.coil.compose) implementation(libs.androidx.activity.compose) - implementation(libs.androidx.hilt.navigation.compose) implementation(libs.hilt.navigation) implementation(libs.androidx.lifecycle.viewmodel.ktx) implementation(libs.androidx.lifecycle.runtime.compose) diff --git a/feature/receiver/presentation/build.gradle.kts b/feature/receiver/presentation/build.gradle.kts index 6a4cf6e3dc..bec3ea4dc7 100644 --- a/feature/receiver/presentation/build.gradle.kts +++ b/feature/receiver/presentation/build.gradle.kts @@ -24,7 +24,6 @@ dependencies { implementation(projects.core.common) implementation(projects.core.ui) implementation(libs.androidx.activity.compose) - implementation(libs.androidx.hilt.navigation.compose) implementation(libs.hilt.navigation) implementation(libs.androidx.lifecycle.viewmodel.ktx) implementation(libs.androidx.lifecycle.runtime.compose) diff --git a/feature/setting/presentation/build.gradle.kts b/feature/setting/presentation/build.gradle.kts index abc770b98c..1f42cfe4c4 100644 --- a/feature/setting/presentation/build.gradle.kts +++ b/feature/setting/presentation/build.gradle.kts @@ -31,7 +31,6 @@ dependencies { implementation(projects.core.domain) implementation(projects.core.model) implementation(projects.core.ui) - implementation(libs.androidx.hilt.navigation.compose) implementation(libs.androidx.compose.runtime) implementation(libs.androidx.biometric) implementation(libs.androidx.credentials) diff --git a/konsist/src/test/kotlin/com/afternote/konsist/ExplicitApiModulePolicyKonsistTest.kt b/konsist/src/test/kotlin/com/afternote/konsist/ExplicitApiModulePolicyKonsistTest.kt index e8d19492ad..369aa02d67 100644 --- a/konsist/src/test/kotlin/com/afternote/konsist/ExplicitApiModulePolicyKonsistTest.kt +++ b/konsist/src/test/kotlin/com/afternote/konsist/ExplicitApiModulePolicyKonsistTest.kt @@ -197,7 +197,6 @@ class ExplicitApiModulePolicyKonsistTest { "afternote.android.data", "afternote.android.datastore", "afternote.android.domain", - "afternote.android.feature", "afternote.android.library", "afternote.android.library.compose", "afternote.jvm.domain",