사진 속 장면을 태그, 메모, 기억 유형으로 정리해 나중에 바로 찾는 Android 비주얼 메모 앱입니다.
GitHub Pages · APK Releases · Privacy Policy · Play Store Checklist
| 항목 | 값 |
|---|---|
| 앱 이름 | MarkScene |
| 최신 문서 기준 | v2.6.7 |
| Android Application ID | com.markscene.app |
| 루트 패키지 | com.markscene.app |
| 저장소 | https://github.com/jeiel85/markscene-android |
| 공개 페이지 | https://jeiel85.github.io/markscene-android/ |
| 개인정보 처리방침 | https://jeiel85.github.io/markscene-android/privacy/ |
| 라이선스 | MIT License |
MarkScene은 사진을 검색 가능한 개인 기억으로 바꿉니다. 사진을 찍거나 선택하면 로컬 태그와 OCR 초안을 만들고, 사용자는 태그와 메모를 수정해 로컬에 저장한 뒤 나중에 검색과 Recall Box로 다시 찾을 수 있습니다.
기본 기능과 고급 AI 분석은 외부 AI API Key 없이 동작합니다. 로컬 VLM 모델을 앱에서 다운로드하면 사진 검증, 장면 요약, 추천 태그 생성이 기기 안에서만 실행됩니다.
사진 촬영 또는 선택
-> 로컬 태그 초안 및 OCR
-> 태그, 제목, 메모, 기억 유형 편집
-> 로컬 저장
-> Scene Timeline, 검색, Recall Box에서 다시 찾기
- Today / Scene Timeline: 날짜별로 정리된 사진 기록과 오늘의 요약을 확인합니다.
- 사진 촬영 및 가져오기: CameraX 촬영과 Android Photo Picker 가져오기를 지원합니다.
- 로컬 태그와 OCR: ML Kit 기반 온디바이스 태그/OCR 초안을 생성합니다.
- 수정 가능한 기억 유형: 아이디어, 업무, 영수증, 장소, 나중에 보기 등 여러 기억 유형을 지정합니다.
- 빠른 검색: 태그, 제목, 메모, OCR 텍스트, 기억 유형 기반으로 기록을 찾습니다.
- Recall Box: 나중에 다시 볼 기록을 별도 탭에 모읍니다.
- 로컬 VLM 고급 분석: MediaPipe 호환 온디바이스 모델을 앱에서 다운로드하면 사진 검증, 장면 요약, 추천 태그를 생성합니다.
- 로컬 비주얼 Q&A: 로컬 모델이 준비된 경우 사진에 대한 질문도 외부 전송 없이 답변합니다.
- 보안 옵션: 모델 다운로드 토큰 암호화 저장, EXIF 제거, 갤러리 숨김, 자동 잠금, 스크린샷 차단 옵션을 제공합니다.
- 공유와 내보내기: 소셜 공유 템플릿, 이미지 크롭, Markdown/CSV 내보내기를 지원합니다.
| 자료 | 위치 |
|---|---|
| GitHub Pages 랜딩 | https://jeiel85.github.io/markscene-android/ |
| 개인정보 처리방침 | https://jeiel85.github.io/markscene-android/privacy/ |
| Play Store 등록 문구 | docs/STORE_LISTING_KO.md |
| 앱 아이콘 512x512 | store-assets/MarkScene_icon_512.png |
| Feature graphic 1024x500 | store-assets/MarkScene_feature_graphic_1024x500.png |
| 스크린샷 | store-assets |
| 릴리즈 체크리스트 | docs/RELEASE_CHECKLIST.md |
| Play Store 체크리스트 | docs/PLAY_STORE_CHECKLIST.md |
- 기본 플로우에서 사용자 사진을 외부 서버로 업로드하지 않습니다.
- Android Photo Picker를 우선 사용하고, 전체 갤러리 스캔을 하지 않습니다.
MANAGE_EXTERNAL_STORAGE, 광범위한 사진/동영상 권한, 백그라운드 위치 권한을 사용하지 않습니다.- 로컬 VLM 모델을 가져온 경우 고급 분석도 기기 안에서 처리되며 외부 AI API Key가 필요하지 않습니다.
- Gemini/BYOK 같은 외부 AI 분석 경로와 분석용 API Key 입력은 제공하지 않습니다.
- 라이선스 게이트 모델 다운로드에 필요한 read token은 기기 내부 암호화 저장소에 보관하고 모델 다운로드에만 사용합니다.
- 모델 다운로드 토큰, 이미지 바이트, 프롬프트, AI 응답, 민감 정보는 로그에 남기지 않습니다.
- AI와 로컬 태그 결과는 확정 사실이 아니라 수정 가능한 제안으로 표시합니다.
현재 매니페스트의 주요 권한:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />INTERNET 권한은 사용자가 로컬 AI 모델 다운로드를 실행할 때 필요합니다. 사진 분석 자체는 다운로드된 로컬 모델로 기기 안에서 처리됩니다.
| 분야 | 기술 |
|---|---|
| 언어 | Kotlin |
| UI | Jetpack Compose, Material 3 |
| 카메라 / 사진 | CameraX, Android Photo Picker |
| 로컬 저장 | Room, DataStore |
| 비동기 | Coroutines / Flow |
| 이미지 | Coil, 앱 내부 이미지 최적화 |
| 로컬 AI | ML Kit Image Labeling, ML Kit Text Recognition, MediaPipe LLM Inference |
| 고급 AI | MediaPipe LLM Inference + 로컬 VLM |
| 보안 | Android Keystore, EncryptedSharedPreferences |
| CI/CD | GitHub Actions, GitHub Pages |
# 단위 테스트
./gradlew :app:testDebugUnitTest
# 린트
./gradlew :app:lintDebug
# 디버그 APK
./gradlew :app:assembleDebugGitHub Actions가 최종 Android CI와 GitHub Pages 배포 검증을 담당합니다.
- AGENTS.md: 에이전트 작업 규칙
- docs/PRODUCT_BRIEF.md: 제품 브리프
- docs/PRD.md: 제품 요구사항
- docs/ARCHITECTURE.md: 아키텍처
- docs/PRIVACY_AND_SECURITY.md: 개인정보 및 보안 원칙
- docs/AI_PROVIDER_STRATEGY.md: AI 제공자 전략
- docs/LOCAL_TAGGING.md: 로컬 태깅 전략
- docs/UX_FLOW.md: UX 흐름
- docs/DESIGN_SYSTEM.md: 디자인 시스템
- docs/DATA_MODEL.md: 데이터 모델
- docs/ROADMAP.md: 로드맵
이 저장소의 단일 진입 규칙은 AGENTS.md입니다. 작업 전 최신 main을 기준으로 상태를 확인하고, 문서와 작업 이력을 읽은 뒤 작은 범위로 구현, 검증, 기록, 커밋, 푸시까지 진행합니다.