# Repository Guidelines ## 프로젝트 구조 및 모듈 구성 - `app/`: 메인 Android 애플리케이션 모듈. - `app/src/main/java/`: Kotlin/Java 소스(Compose UI, DI, Room 등). - `app/src/main/cpp/`: CMake 빌드(`CMakeLists.txt`)를 사용하는 네이티브 코드. - `app/src/main/res/`: Android 리소스(레이아웃, 드로어블, 문자열). - `app/src/main/assets/`: 앱 에셋(`raman_res.zip` 포함). - `app/src/androidTest/java/`: 계측 테스트. - `build/` 및 `app/build/`: Gradle 빌드 산출물. - `gradle/` 및 `gradlew`: Gradle wrapper 및 버전 카탈로그. - `keystore/`: 모듈에서 사용하는 디버그/릴리스 키스토어. ## 빌드, 테스트 및 개발 명령어 - `./gradlew build`: 전체 빌드(유닛 테스트 포함). - `./gradlew assembleDebug`: 디버그 APK 빌드. - `./gradlew assembleRelease`: 릴리스 APK 빌드(`keystore/` 사용). - `./gradlew bundleRelease`: 릴리스 AAB 번들 생성. - `./gradlew installDebug`: 연결된 기기/에뮬레이터에 디버그 빌드 설치. - `./gradlew lint`: Android Lint 실행. - `./gradlew connectedAndroidTest`: 기기/에뮬레이터에서 계측 테스트 실행. - `./gradlew clean`: 빌드 산출물 삭제. ## 코딩 스타일 및 네이밍 규칙 - Kotlin/Java: Android 표준 스타일, 4칸 들여쓰기. - 클래스/Composable: `PascalCase` (예: `MainViewModel`, `SettingsScreen`). - 함수/변수: `camelCase` (예: `loadProfile`, `isLoading`). - 리소스: `snake_case` (예: `ic_scan`, `screen_title`). - 포맷터는 설정되어 있지 않으므로, 주변 코드 스타일에 맞춰 작성. ## 테스트 가이드 - 계측 테스트는 `app/src/androidTest/java/`에 위치. - AndroidX 테스트 러너 + Espresso/Compose 테스트 API 사용. - `./gradlew connectedAndroidTest`로 실행. ## 커밋 및 PR 가이드라인 - 이 워크스페이스에는 Git 히스토리가 없어 강제 커밋 규칙이 없음. - 간결하고 명령형 커밋 메시지 권장 (예: `Fix scan timeout`). - PR에는 변경 요약, 테스트 결과, UI 변경 시 스크린샷 포함. ## 보안 및 설정 팁 - `local.properties`에는 Android SDK 경로를 지정하며 커밋하지 않음. - `keystore/`의 키스토어는 로컬 빌드용이며, 프로덕션 배포 시 교체 필요.