Skip to content

[Feat#1] multi module and git#2

Merged
sonms merged 19 commits into
masterfrom
feat#1-multi-module-and-git
Apr 27, 2026
Merged

[Feat#1] multi module and git#2
sonms merged 19 commits into
masterfrom
feat#1-multi-module-and-git

Conversation

@sonms

@sonms sonms commented Apr 27, 2026

Copy link
Copy Markdown
Member

ISSUE

❗ WORK DESCRIPTION

  • 깃허브 초기 세팅 진행 (template 등)
  • 멀티모듈 세팅
    • 각 의존성을 분리하여 미리 convention 및 build logic helper 세팅

Uncompleted Tasks 😅

  • [ ]

📸 SCREENSHOT

image

sonms added 19 commits April 24, 2026 13:52
- Add core, data, domain, and presentation modules to `settings.gradle.kts`.
- Expand `.gitignore` with comprehensive rules for Android, IntelliJ, macOS, Windows, and Linux.
- `core:designsystem` 모듈을 신규 생성하고 관련 Gradle 및 AndroidManifest 설정을 추가하였습니다.
- 기존 `app` 모듈에 위치하던 테마 관련 파일(`Color.kt`, `Theme.kt`, `Type.kt`)을 `core:designsystem` 모듈로 이동하고 패키지 명을 변경하였습니다.
- `Pretendard` 폰트 리소스 파일들을 `core:designsystem` 모듈에 추가하였습니다.
- `core:navigation` 모듈을 신규 생성하고 관련 Gradle 및 `.gitignore` 설정을 추가하였습니다.
- 네비게이션 구조 정의를 위한 `Route` 및 `MainTabRoute` 인터페이스를 추가하였습니다.
- `core:network` 모듈을 신규 생성하고 필요한 라이브러리 의존성(Retrofit, OkHttp, Serialization)을 추가하였습니다.
- Hilt를 사용하여 `NetworkModule`을 구현하고 Retrofit, OkHttpClient, LoggingInterceptor, Converter Factory를 위한 Provider를 정의하였습니다.
- `BuildConfig`에 정의된 `BASE_URL`을 사용하여 Retrofit의 기본 설정을 완료하였습니다.
- `domain` 모듈을 신규 생성하고 `build.gradle.kts` 설정을 추가하였습니다.
- Java 및 Kotlin JVM 타겟을 11로 설정하였습니다.
- 기본 패키지 경로에 `MyClass.kt` 파일을 추가하였습니다.
- `presentation` 모듈을 신규 생성하였습니다.
- Java 및 Kotlin JVM 타겟을 11로 설정한 `build.gradle.kts`를 추가하였습니다.
- 모듈별 `.gitignore` 설정을 추가하였습니다.
- `presentation:main` 모듈을 신규 생성하고 관련 Gradle, AndroidManifest, ProGuard 설정을 추가하였습니다.
- `app` 모듈에 위치하던 `MainActivity.kt`를 `presentation:main` 모듈로 이동하고 패키지 명을 변경하였습니다.
- `MainActivity`에 `@AndroidEntryPoint` 어노테이션을 추가하고, 테마 임포트 경로를 `core:designsystem`으로 업데이트하였습니다.
- `HiltAndroidApp` 어노테이션이 적용된 `FocpetApplication` 클래스를 추가하였습니다.
- 애플리케이션 초기화 시 `Timber` 로그 설정 및 다크모드 비활성화(`MODE_NIGHT_NO`) 처리를 추가하였습니다.
- `Coil` 이미지 로더 커스텀 설정을 위해 `ImageLoaderFactory`를 구현하였습니다.
- `AndroidManifest.xml`에 `FocpetApplication`을 등록하고, `MainActivity`의 패키지 경로를 수정하였습니다.
- `MainActivity`에서 기존 샘플 코드를 제거하고 `MainScreen`을 호출하도록 변경하였습니다.
- `MainScreen`을 구현하여 Toast, Snackbar, Dialog 등의 글로벌 UI 이벤트를 처리하기 위한 `GlobalUiEventHolder` 및 `CompositionLocalProvider` 설정을 추가하였습니다.
- 네비게이션 상태 및 하단 바 가시성 등을 관리하는 `MainAppState` 클래스와 `rememberMainAppState` 함수를 추가하였습니다.
- 다이얼로그 상태를 관리하기 위한 `DialogStateHolder`를 추가하였습니다.
- 메인 탭 구성을 위한 `MainTab` enum 클래스를 정의하였습니다.
- `gradle.properties` 설정을 통해 빌드 성능을 최적화하였습니다. (JVM 메모리 상향, parallel execution, build cache, configuration cache 활성화)
- `android.nonTransitiveRClass`, `android.builtInKotlin`, `android.uniquePackageNames` 등 프로젝트 안정성 및 성능 향상을 위한 옵션을 추가하였습니다.
- `core:localstorage` 모듈을 `settings.gradle.kts`에 추가하였습니다.
- `UiState` sealed interface 추가로 공통 UI 상태 관리 구조 정의
- `GlobalUiEventHolder` 및 `LocalGlobalUiEventTrigger`를 통한 전역 UI 이벤트(Dialog, Toast, Snackbar) 처리 체계 구축
- `Flow` 및 `StateFlow` 확장 함수 추가 (`collectSideEffect`, `collectSingleEvent`, `updateSuccess`)
- `Modifier` 확장 함수 추가 (리플 없는 클릭, 이미지 크기 조정)
- 네트워크 예외 처리 로직(`toHandleErrorMessage`) 및 Coroutine safe한 `suspendRunCatching` 유틸리티 추가
- `core:network` 모듈의 `NetworkModule.kt` 파일을 `di` 패키지로 이동하고 패키지 경로를 수정하였습니다.
- `NetworkModule`에서 `Json.Default`를 사용하도록 수정하였습니다.
- `app` 모듈에 이미지 로딩 최적화를 위한 `CoilModule`을 추가하였습니다.
- `core:network` 모듈에 공통 응답 규격을 위한 `BaseResponse.kt` 정의를 추가하였습니다(현재 주석 처리됨).
- `domain` 모듈의 기존 소스 코드 및 빌드 설정을 삭제하고 디렉토리 유지를 위해 `.gitkeep`을 추가하였습니다.
- `core:localstorage` 모듈을 신규 생성하고 관련 Gradle 및 Manifest 설정을 추가하였습니다.
- `core:common` 모듈에 `focpet.android.compose` 컨벤션 플러그인을 추가하였습니다.
- Claude Code 도구 사용 시 생성되는 프로젝트 가이드 파일인 `CLAUDE.md`를 Git 관리 대상에서 제외하도록 추가하였습니다.
- `.github/pull_request_template.md`를 추가하여 PR의 작업 내용 및 스크린샷 등을 기록할 수 있는 공통 양식을 정의하였습니다.
- `.github/ISSUE_TEMPLATE/issue_template.md`를 추가하여 이슈 설명 및 할 일 목록을 관리할 수 있도록 하였습니다.
- `.github/workflows/auto_assign_action.yml` 및 `auto_assign.yml`을 추가하여 PR 생성 시 작성자 자동 할당 및 리뷰어 자동 지정을 위한 워크플로우를 설정하였습니다.
@sonms sonms self-assigned this Apr 27, 2026
@sonms sonms merged commit 34f0b35 into master Apr 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat] multi module setting & .github setting

1 participant