From 2bc6b7ddc25fda61923ae13a4c0e5b77bc5b0b31 Mon Sep 17 00:00:00 2001 From: Daemon Date: Sun, 28 Dec 2025 21:27:12 +0900 Subject: [PATCH] =?UTF-8?q?Refactor:=20Hilt=20=EC=99=84=EC=A0=84=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9=20=EB=B0=8F=20=EB=A9=80=ED=8B=B0=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88=20=EA=B5=AC=EC=A1=B0=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 1: Hilt 완전 적용 - NetworkModule에 누락된 서비스 추가 (Create, Social, Notice, Record, FCM) - 모든 Repository에 @Inject @Singleton 적용 - 모든 ViewModel을 @HiltViewModel 패턴으로 마이그레이션 - ViewModelFactory 클래스 삭제 (7개 파일) - 모든 Fragment에 @AndroidEntryPoint 적용 (30+ 파일) - Fragment에서 by viewModels() 델리게이트 사용으로 전환 Phase 2: 멀티 모듈 구조 설정 - build-logic Convention Plugins 생성 - Version Catalog (libs.versions.toml) 추가 - Core 모듈 생성: common, network, datastore, domain, data, designsystem - Feature 모듈 생성: home, social, record, mypage, onboarding, create, notice - app 모듈에 core 모듈 의존성 연결 버그 수정 - CreateService.kt 패키지명 오타 수정 - google-services.json 패키지명 오타 수정 - SigningConfig storeFile 누락 시 기본값 사용하도록 수정 --- .gitignore | 7 +- .idea/appInsightsSettings.xml | 2 +- .idea/compiler.xml | 4 +- .idea/gradle.xml | 29 +++ .idea/kotlinc.xml | 2 +- app/build.gradle.kts | 67 ++++--- .../data/create/service/CreateService.kt | 2 +- .../toyou/toyouandroid/di/NetworkModule.kt | 41 ++++- .../toyou/toyouandroid/di/RepositoryModule.kt | 28 +-- .../create/repository/CreateRepository.kt | 13 +- .../domain/notice/NoticeRepository.kt | 5 +- .../profile/repository/ProfileRepository.kt | 5 +- .../domain/record/RecordRepository.kt | 5 +- .../social/repostitory/SocialRepository.kt | 5 +- .../toyouandroid/fcm/domain/FCMRepository.kt | 11 +- .../emotionstamp/HomeOptionFragment.kt | 28 +-- .../emotionstamp/HomeResultFragment.kt | 2 + .../fragment/home/CardFragment.kt | 33 +--- .../fragment/home/CreateFragment.kt | 29 +-- .../fragment/home/CreateWriteFragment.kt | 28 +-- .../fragment/home/HomeFragment.kt | 64 +------ .../fragment/home/ModifyFragment.kt | 27 +-- .../fragment/home/PreviewFragment.kt | 34 +--- .../fragment/mypage/MypageDialogViewModel.kt | 5 +- .../fragment/mypage/NoticeSettingFragment.kt | 2 + .../fragment/mypage/ProfileFragment.kt | 28 +-- .../fragment/notice/NoticeDialogViewModel.kt | 5 +- .../fragment/notice/NoticeFragment.kt | 64 +------ .../fragment/notice/NoticeViewModel.kt | 5 +- .../fragment/onboarding/LoginFragment.kt | 20 +- .../fragment/onboarding/LoginViewModel.kt | 12 +- .../onboarding/SignupAgreeFragment.kt | 2 + .../onboarding/SignupAgreeViewModel.kt | 5 +- .../onboarding/SignupNicknameFragment.kt | 7 - .../onboarding/SignupStatusFragment.kt | 29 +-- .../onboarding/SignupStatusViewModel.kt | 5 +- .../fragment/onboarding/SplashFragment.kt | 42 +---- .../record/CalendarDialogViewModel.kt | 5 +- .../fragment/record/CardInfoViewModel.kt | 7 +- .../fragment/record/RecordFragment.kt | 2 + .../friend/CalendarFriendRecordFragment.kt | 25 +-- .../friend/FriendCardContainerFragment.kt | 25 +-- .../record/friend/FriendCardDetailFragment.kt | 38 +--- .../record/friend/FriendCardViewModel.kt | 5 +- .../record/friend/FriendRecordViewModel.kt | 7 +- .../record/my/CalendarMyRecordFragment.kt | 25 +-- .../record/my/MyCardContainerFragment.kt | 45 +---- .../record/my/MyCardDetailFragment.kt | 47 +---- .../fragment/record/my/MyCardViewModel.kt | 5 +- .../fragment/record/my/MyRecordViewModel.kt | 5 +- .../fragment/social/CustomDialogFragment.kt | 2 + .../social/QuestionContentFragment.kt | 32 +--- .../social/QuestionContentLongFragment.kt | 30 +-- .../fragment/social/QuestionTypeFragment.kt | 30 +-- .../fragment/social/SendFinalFragment.kt | 32 +--- .../fragment/social/SendFragment.kt | 43 +---- .../fragment/social/SocialFragment.kt | 43 +---- .../fragment/tutorial/TutorialFragment.kt | 2 + .../tutorial/TutorialStep1Fragment.kt | 2 + .../tutorial/TutorialStep2Fragment.kt | 2 + .../tutorial/TutorialStep3Fragment.kt | 2 + .../tutorial/TutorialStep4Fragment.kt | 2 + .../tutorial/TutorialStep5Fragment.kt | 2 + .../presentation/viewmodel/CardViewModel.kt | 10 +- .../viewmodel/CardViewModelFactory.kt | 21 --- .../viewmodel/HomeViewModelFactory.kt | 37 ---- .../viewmodel/LoginViewModelFactory.kt | 25 --- .../viewmodel/NoticeViewModelFactory.kt | 21 --- .../viewmodel/RecordViewModelFactory.kt | 37 ---- .../presentation/viewmodel/SocialViewModel.kt | 8 +- .../viewmodel/SocialViewModelFactory.kt | 22 --- .../presentation/viewmodel/UserViewModel.kt | 5 +- .../viewmodel/UserViewModelFactory.kt | 20 -- build-logic/convention/build.gradle.kts | 49 +++++ .../AndroidApplicationConventionPlugin.kt | 20 ++ .../kotlin/AndroidComposeConventionPlugin.kt | 48 +++++ .../kotlin/AndroidFeatureConventionPlugin.kt | 35 ++++ .../kotlin/AndroidHiltConventionPlugin.kt | 22 +++ .../kotlin/AndroidLibraryConventionPlugin.kt | 20 ++ .../src/main/kotlin/KotlinAndroid.kt | 76 ++++++++ build-logic/settings.gradle.kts | 14 ++ core/common/build.gradle.kts | 16 ++ core/common/src/main/AndroidManifest.xml | 2 + .../toyou/core/common/di/DispatcherModule.kt | 42 +++++ .../com/toyou/core/common/result/Result.kt | 33 ++++ core/data/build.gradle.kts | 18 ++ core/data/src/main/AndroidManifest.xml | 2 + .../com/toyou/core/data/di/DataModule.kt | 15 ++ core/datastore/build.gradle.kts | 16 ++ core/datastore/src/main/AndroidManifest.xml | 2 + .../com/toyou/core/datastore/TokenStorage.kt | 55 ++++++ .../toyou/core/datastore/TutorialStorage.kt | 29 +++ .../toyou/core/datastore/UserPreferences.kt | 35 ++++ core/designsystem/build.gradle.kts | 13 ++ .../designsystem/src/main/AndroidManifest.xml | 2 + .../toyou/core/designsystem/theme/Color.kt | 36 ++++ .../toyou/core/designsystem/theme/Theme.kt | 50 +++++ .../com/toyou/core/designsystem/theme/Type.kt | 115 ++++++++++++ core/domain/build.gradle.kts | 17 ++ core/domain/src/main/AndroidManifest.xml | 2 + .../com/toyou/core/domain/model/Card.kt | 19 ++ .../com/toyou/core/domain/model/Friend.kt | 8 + .../com/toyou/core/domain/model/Notice.kt | 10 + .../com/toyou/core/domain/model/User.kt | 7 + .../core/domain/repository/HomeRepository.kt | 8 + .../domain/repository/NoticeRepository.kt | 8 + .../domain/repository/SocialRepository.kt | 12 ++ core/network/build.gradle.kts | 15 ++ core/network/src/main/AndroidManifest.xml | 2 + .../com/toyou/core/network/NetworkClient.kt | 60 ++++++ .../toyou/core/network/di/NetworkModule.kt | 37 ++++ .../toyou/core/network/model/BaseResponse.kt | 8 + feature/create/build.gradle.kts | 11 ++ feature/create/src/main/AndroidManifest.xml | 2 + feature/home/build.gradle.kts | 11 ++ feature/home/src/main/AndroidManifest.xml | 2 + feature/mypage/build.gradle.kts | 11 ++ feature/mypage/src/main/AndroidManifest.xml | 2 + feature/notice/build.gradle.kts | 11 ++ feature/notice/src/main/AndroidManifest.xml | 2 + feature/onboarding/build.gradle.kts | 11 ++ .../onboarding/src/main/AndroidManifest.xml | 2 + feature/record/build.gradle.kts | 11 ++ feature/record/src/main/AndroidManifest.xml | 2 + feature/social/build.gradle.kts | 11 ++ feature/social/src/main/AndroidManifest.xml | 2 + gradle/libs.versions.toml | 172 ++++++++++++++++++ gradlew | 0 settings.gradle.kts | 22 ++- 129 files changed, 1616 insertions(+), 1020 deletions(-) delete mode 100644 app/src/main/java/com/toyou/toyouandroid/presentation/viewmodel/CardViewModelFactory.kt delete mode 100644 app/src/main/java/com/toyou/toyouandroid/presentation/viewmodel/HomeViewModelFactory.kt delete mode 100644 app/src/main/java/com/toyou/toyouandroid/presentation/viewmodel/LoginViewModelFactory.kt delete mode 100644 app/src/main/java/com/toyou/toyouandroid/presentation/viewmodel/NoticeViewModelFactory.kt delete mode 100644 app/src/main/java/com/toyou/toyouandroid/presentation/viewmodel/RecordViewModelFactory.kt delete mode 100644 app/src/main/java/com/toyou/toyouandroid/presentation/viewmodel/SocialViewModelFactory.kt delete mode 100644 app/src/main/java/com/toyou/toyouandroid/presentation/viewmodel/UserViewModelFactory.kt create mode 100644 build-logic/convention/build.gradle.kts create mode 100644 build-logic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt create mode 100644 build-logic/convention/src/main/kotlin/AndroidComposeConventionPlugin.kt create mode 100644 build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt create mode 100644 build-logic/convention/src/main/kotlin/AndroidHiltConventionPlugin.kt create mode 100644 build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt create mode 100644 build-logic/convention/src/main/kotlin/KotlinAndroid.kt create mode 100644 build-logic/settings.gradle.kts create mode 100644 core/common/build.gradle.kts create mode 100644 core/common/src/main/AndroidManifest.xml create mode 100644 core/common/src/main/kotlin/com/toyou/core/common/di/DispatcherModule.kt create mode 100644 core/common/src/main/kotlin/com/toyou/core/common/result/Result.kt create mode 100644 core/data/build.gradle.kts create mode 100644 core/data/src/main/AndroidManifest.xml create mode 100644 core/data/src/main/kotlin/com/toyou/core/data/di/DataModule.kt create mode 100644 core/datastore/build.gradle.kts create mode 100644 core/datastore/src/main/AndroidManifest.xml create mode 100644 core/datastore/src/main/kotlin/com/toyou/core/datastore/TokenStorage.kt create mode 100644 core/datastore/src/main/kotlin/com/toyou/core/datastore/TutorialStorage.kt create mode 100644 core/datastore/src/main/kotlin/com/toyou/core/datastore/UserPreferences.kt create mode 100644 core/designsystem/build.gradle.kts create mode 100644 core/designsystem/src/main/AndroidManifest.xml create mode 100644 core/designsystem/src/main/kotlin/com/toyou/core/designsystem/theme/Color.kt create mode 100644 core/designsystem/src/main/kotlin/com/toyou/core/designsystem/theme/Theme.kt create mode 100644 core/designsystem/src/main/kotlin/com/toyou/core/designsystem/theme/Type.kt create mode 100644 core/domain/build.gradle.kts create mode 100644 core/domain/src/main/AndroidManifest.xml create mode 100644 core/domain/src/main/kotlin/com/toyou/core/domain/model/Card.kt create mode 100644 core/domain/src/main/kotlin/com/toyou/core/domain/model/Friend.kt create mode 100644 core/domain/src/main/kotlin/com/toyou/core/domain/model/Notice.kt create mode 100644 core/domain/src/main/kotlin/com/toyou/core/domain/model/User.kt create mode 100644 core/domain/src/main/kotlin/com/toyou/core/domain/repository/HomeRepository.kt create mode 100644 core/domain/src/main/kotlin/com/toyou/core/domain/repository/NoticeRepository.kt create mode 100644 core/domain/src/main/kotlin/com/toyou/core/domain/repository/SocialRepository.kt create mode 100644 core/network/build.gradle.kts create mode 100644 core/network/src/main/AndroidManifest.xml create mode 100644 core/network/src/main/kotlin/com/toyou/core/network/NetworkClient.kt create mode 100644 core/network/src/main/kotlin/com/toyou/core/network/di/NetworkModule.kt create mode 100644 core/network/src/main/kotlin/com/toyou/core/network/model/BaseResponse.kt create mode 100644 feature/create/build.gradle.kts create mode 100644 feature/create/src/main/AndroidManifest.xml create mode 100644 feature/home/build.gradle.kts create mode 100644 feature/home/src/main/AndroidManifest.xml create mode 100644 feature/mypage/build.gradle.kts create mode 100644 feature/mypage/src/main/AndroidManifest.xml create mode 100644 feature/notice/build.gradle.kts create mode 100644 feature/notice/src/main/AndroidManifest.xml create mode 100644 feature/onboarding/build.gradle.kts create mode 100644 feature/onboarding/src/main/AndroidManifest.xml create mode 100644 feature/record/build.gradle.kts create mode 100644 feature/record/src/main/AndroidManifest.xml create mode 100644 feature/social/build.gradle.kts create mode 100644 feature/social/src/main/AndroidManifest.xml create mode 100644 gradle/libs.versions.toml mode change 100644 => 100755 gradlew diff --git a/.gitignore b/.gitignore index ec9542c9..f6be5696 100644 --- a/.gitignore +++ b/.gitignore @@ -8,8 +8,13 @@ /.idea/navEditor.xml /.idea/assetWizardSettings.xml /.idea/misc.xml +/.idea/.name +/.idea/AndroidProjectSystem.xml +/.idea/markdown.xml +/.idea/runConfigurations.xml .DS_Store -/build +build/ +**/build/ /captures .externalNativeBuild .cxx diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml index ec59bab9..b7256f01 100644 --- a/.idea/appInsightsSettings.xml +++ b/.idea/appInsightsSettings.xml @@ -9,7 +9,7 @@