앨범에 쌓인 스크린샷, 필요할 때 바로 꺼내 쓰세요.
Recap은 스크린샷을 AI로 요약하고 분류해
제목·요약·이미지 속 내용으로 다시 찾을 수 있게 만드는 Android 앱입니다.
| 기능 |
설명 |
| 스크린샷 정리 |
앨범에서 여러 장을 선택해 한 번에 정리할 수 있어요. |
| AI 요약 |
이미지 속 내용을 분석해 제목과 핵심 요약을 만들어요. |
| 자동 분류 |
장소·맛집, 일정·예약, 쇼핑·상품 등 알맞은 유형으로 나눠요. |
| 내용 검색 |
제목과 요약은 물론, 이미지 속 텍스트까지 검색할 수 있어요. |
| 빠른 공유 |
방금 캡처한 화면을 Android 공유 시트에서 Recap으로 바로 보낼 수 있어요. |
| 영역 |
기술 |
| Language |
Kotlin 2.4 |
| UI |
Jetpack Compose, Material 3, Lottie |
| Architecture |
Multi-module MVVM, immutable UiState, sealed Action |
| Navigation |
AndroidX Navigation3 |
| Dependency Injection |
Hilt, KSP |
| Async |
Kotlin Coroutines, Flow |
| Network |
Retrofit, OkHttp, Kotlinx Serialization |
| Auth |
Kakao Login |
| Persistence |
Room, DataStore |
| Image |
Coil |
| Observability |
Timber, Firebase Crashlytics, Firebase Performance |
| Analysis |
서버 기반 OCR·AI 분석 |
| Test |
JUnit 5, Compose Preview Screenshot Testing |
Recap은 :app을 중심으로 재사용 계층인 :core:*와 화면 단위 기능인 :feature:*를 분리한 멀티모듈 프로젝트입니다.
:app
:core:model
:core:design
:core:data
:feature:home
:feature:collection
:feature:organize
:feature:screenshot
:feature:onboarding
:feature:settings
:feature:developer
- UI 상태는 immutable
UiState로 표현하고 사용자 입력은 sealed Action으로 명시합니다.
- ViewModel은 상태 생성과 action 처리에 집중합니다.
- Repository가 로컬 저장소와 외부 연동의 세부 구현을 감춥니다.
- 스크린샷 도메인 backend는 빌드 시점에 Mock 또는 Remote로 고정됩니다. debug 기본값은 Mock이며, qa/release는 Remote입니다.
| 항목 |
값 |
| Package |
com.chalkak.recap |
| minSdk |
30 |
| targetSdk / compileSdk |
37 |
| Kotlin / AGP |
2.4.10 / 9.3.1 |
| JDK |
17 |
| Version |
1.1.3 (versionCode 11) |
| Build types |
debug, qa, release |