Repository navigation
feat: 멀티모듈 아키텍처 전환 및 Hilt DI 도입 - #33
Conversation
- 프로젝트 구조를 `:core` 및 `:feature` 기반의 멀티 모듈 체계로 개편 - Hilt를 이용한 의존성 주입(DI) 도입 및 관련 설정 적용 - `app` 모듈의 기능을 역할에 따라 각 하위 모듈(`main`, `addschedule`, `data`, `ui` 등)로 이관 - 아키텍처 가이드, 작업 규약 및 개발 환경 설정을 위한 wiki 문서 추가 - 빌드 스크립트 및 의존성 버전 관리(`libs.versions.toml`) 체계 업데이트 - 이슈 템플릿 준수 여부 확인을 위한 커스텀 훅 고도화
- Gradle 버전을 8.13으로, AGP를 8.13.2로 업데이트했습니다. - Gradle JVM 툴체인 설정(Java 21) 및 foojay-resolver 플러그인을 추가했습니다. - core 및 feature 관련 신규 모듈들을 프로젝트 설정에 등록했습니다.
|
❌ Screenshot test fail — baseline 과 CI rendered PNG 차이. 📦 Artifact: https://github.com/1hyok/SlowClock/actions/runs/26706462011 (페이지 하단 Artifacts → 🔍 확인 위치 (artifact zip 내부):
📝 조치 가이드:
근본 fix (docker 통일 baseline 환경) 는 별 epic. |
- core/data 모듈 컴파일을 위해 CI 워크플로우(.github/workflows)에 stub service_account 리소스 생성 단계 추가 - VertexAIRepository의 TAG 상수를 companion object로 이동 - TimelineScreen의 변수명을 Kotlin 네이밍 규칙에 맞춰 수정 (Date -> date)
| distributionBase=GRADLE_USER_HOME | ||
| distributionPath=wrapper/dists | ||
| distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip | ||
| distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip |
There was a problem hiding this comment.
AndroidGradlePluginVersion: A newer version of Gradle than 8.13 is available: 8.14.5
| @@ -1,5 +1,5 @@ | |||
| [versions] | |||
| agp = "8.10.1" | |||
| agp = "8.13.2" | |||
There was a problem hiding this comment.
AndroidGradlePluginVersion: A newer version of com.android.application than 8.13.2 is available: 9.2.1
| @@ -1,5 +1,5 @@ | |||
| [versions] | |||
| agp = "8.10.1" | |||
| agp = "8.13.2" | |||
There was a problem hiding this comment.
AndroidGradlePluginVersion: A newer version of com.android.library than 8.13.2 is available: 9.2.1
| @@ -1,5 +1,5 @@ | |||
| [versions] | |||
| agp = "8.10.1" | |||
| agp = "8.13.2" | |||
There was a problem hiding this comment.
AndroidGradlePluginVersion: A newer version of com.android.tools.build:gradle than 8.13.2 is available: 9.2.1
| # --- 멀티모듈 DI --- | ||
| hilt = "2.52" | ||
| ksp = "2.0.21-1.0.28" | ||
| hiltNavigationCompose = "1.2.0" |
There was a problem hiding this comment.
GradleDependency: A newer version of androidx.hilt:hilt-navigation-compose than 1.2.0 is available: 1.3.0
| screenshot = "0.0.1-alpha15" | ||
| firebaseAppDistribution = "5.2.1" | ||
| # --- 멀티모듈 DI --- | ||
| hilt = "2.52" |
There was a problem hiding this comment.
NewerVersionAvailable: A newer version of com.google.dagger.hilt.android than 2.52 is available: 2.59.2
| screenshot = "0.0.1-alpha15" | ||
| firebaseAppDistribution = "5.2.1" | ||
| # --- 멀티모듈 DI --- | ||
| hilt = "2.52" |
There was a problem hiding this comment.
NewerVersionAvailable: A newer version of com.google.dagger:hilt-android than 2.52 is available: 2.59.2
| screenshot = "0.0.1-alpha15" | ||
| firebaseAppDistribution = "5.2.1" | ||
| # --- 멀티모듈 DI --- | ||
| hilt = "2.52" |
There was a problem hiding this comment.
NewerVersionAvailable: A newer version of com.google.dagger:hilt-android-compiler than 2.52 is available: 2.59.2
| screenshot = "0.0.1-alpha15" | ||
| firebaseAppDistribution = "5.2.1" | ||
| # --- 멀티모듈 DI --- | ||
| hilt = "2.52" |
There was a problem hiding this comment.
NewerVersionAvailable: A newer version of com.google.dagger:hilt-android-gradle-plugin than 2.52 is available: 2.59.2
| hilt = "2.52" | ||
| ksp = "2.0.21-1.0.28" | ||
| hiltNavigationCompose = "1.2.0" | ||
| kotlinxSerialization = "1.7.3" |
There was a problem hiding this comment.
NewerVersionAvailable: A newer version of org.jetbrains.kotlinx:kotlinx-serialization-core than 1.7.3 is available: 1.11.0
📌𝘐𝘴𝘴𝘶𝘦𝘴
📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯
:app+:core(model·common·ui·alarm·data) +:feature(main·addschedule·recommendation·information·profile·familygroup)@HiltAndroidApp·@AndroidEntryPoint·@HiltViewModel·Repository@Inject/ 화면은hiltViewModel()util ↔ data순환 해소(:core:common추출),data → alarm단방향 DAG 로 정리FCMService/AlarmTriggerService↔MainActivity디커플(문자열 클래스명), 알람 리소스:core:alarm이동javapoet:1.13.0강제)📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵
구조 리팩터 — UI 변경 없음
💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴
google-services.json으로:app:assembleDebug통과 확인 (실제 키는 로컬).GOOGLE_SERVICES_JSON_B64시크릿·스크린샷 baseline 미설정이라 빨갈 수 있음 → #32에서 처리.