영업 활동 기록과 고객 관리를 위한 Android 앱. 멀티모듈 · Convention Plugin · Compose 점진 전환을 직접 설계한 개인 학습·포트폴리오 프로젝트입니다.
Kotlin 447 files · 6 modules · ViewModel 31 · Compose 화면 44
| 영역 | 사용 기술 |
|---|---|
| UI | Jetpack Compose · Material · ViewBinding/DataBinding (Compose로 전환 중) |
| Architecture | MVVM · Hilt |
| Async | Coroutines · Flow / StateFlow |
| Network | Retrofit · OkHttp |
| Build | Gradle Kotlin DSL · Convention Plugin 8종 · Version Catalog · composite build |
| Analytics | Firebase (인터페이스 분리) |
Note-Android
├── build-logic/convention/ # Convention Plugin 8종 (composite build)
├── app/ # 화면 · ViewModel
├── data/ # Repository 구현 · 데이터 소스
├── designsystem/ # 재사용 UI 컴포넌트
├── common/ # 확장 함수 · BaseViewModel
├── tracking/ # 분석 이벤트 추상화
├── testing/ # 테스트 공통 설정
└── gradle/libs.versions.toml # 의존성 중앙 관리
새 모듈을 추가할 때 필요한 선언:
plugins {
id("....android.library")
id("....android.library.compose")
id("....android.hilt")
}SDK 버전, Java 버전, Compose 설정, 의존성 묶음은 Convention Plugin이 처리합니다.
./gradlew assembleDebugFirebase 연동 기능은
google-services.json이 필요합니다. 저장소에는 포함하지 않았습니다.
- Baseline Profile 적용 및 앱 시작 시간 측정
- Macrobenchmark로 스크롤 성능·메모리 측정
- 남은 XML 화면 Compose 전환
- LiveData → StateFlow 전환 마무리