빠른 필기감과 정돈된 로컬 보관에 집중한 Android 태블릿 필기 워크스페이스
NoteUp은 종이 노트를 펼치듯 바로 쓰고, 노트북과 페이지 단위로 기록을 관리하는 오프라인 우선 필기 앱입니다. 스타일러스뿐 아니라 터치 입력을 지원하며 PDF·이미지 위 필기, 선택 편집, 내보내기와 자동 복구까지 하나의 작업 공간에서 제공합니다.
- Zero Delay: 입력 중인 획을 화면에 즉시 렌더링하고 저장 작업은 직렬 큐에서 별도로 처리합니다.
- Analog Simplicity: 자주 쓰는 도구를 아이콘 툴바와 상황별 설정 패널로 간결하게 제공합니다.
- Clean Archive: 노트북, 노트, 페이지와 휴지통을 로컬에서 일관되게 관리합니다.
- 모든 노트, 미분류, 노트북별 노트와 휴지통 필터
- 현재 필터와 결합되는 제목 실시간 검색
- 노트북·노트 생성, 이름 변경, 이동과 삭제
- 노트북 삭제 시 포함된 노트를 미분류 상태로 보존
- 노트 복구, 영구 삭제와 7일·30일·90일 자동 정리
- 실제 첫 페이지 필기 썸네일과 최근 수정일 기준 카드 정렬
- 가로 화면 고정 사이드바와 세로 화면 내비게이션 Drawer
- 압력 기반 가변 굵기 펜과 반투명 형광펜
- 획 단위·접촉 영역 지우개와 실시간 삭제 미리보기
- 기본 색상과 HSV 컬러 피커, 사용자 색상 등록·삭제
- 현재 편집 세션의 Undo / Redo
- 직선, 사각형, 원 도형과 다중 행 텍스트 상자
- 텍스트 터치 선택, 드래그 이동과 더블 탭 내용 편집
- 갤러리 이미지 삽입, 이동, 비율 조절, 복사·붙여넣기와 삭제
- 올가미로 획·도형·텍스트·이미지를 함께 선택하고 변형
- 스타일러스 전용 또는 스타일러스·터치 필기 모드 선택
- 스타일러스 사이드 버튼과 하드웨어 지우개 입력 지원
- 둘러보기 도구에서 터치·마우스·스타일러스 드래그 이동
- 두 손가락 확대·이동, 마우스 휠 확대와 100~400% 배율 조작
- 좌우 스와이프 및 하단 이전·다음 버튼 페이지 이동
- 백지, 줄노트, 모눈 속지와 기본 속지 설정
- 페이지 추가, 빠른 선택, 삭제, 마지막 페이지 보호와 드래그 순서 변경
- 가로·세로 화면별 반응형 툴바와 페이지 패널
- 페이지별 확대 위치를 현재 앱 세션 동안 유지
- 파일 앱의
열기또는 Android 공유 메뉴를 통한 외부 PDF 가져오기 - 원본 PDF 페이지를 배경으로 유지하면서 별도 필기 레이어 저장
- 페이지 확대 배율에 맞춘 고해상도 PDF 렌더링과 타일 캐시
- 현재 페이지를 2560×1440 PNG 또는 WebP로 내보내기
- 전체 노트를 A4 가로 다중 페이지 PDF로 내보내기
- Android 공유 시트와 Storage Access Framework 저장 위치 선택
- 속지·PDF·필기·도형·텍스트·이미지를 같은 렌더링 순서로 합성
- Room 기반 오프라인 저장과 버전별 명시적 Migration
노트북 > 노트 > 페이지 > 획·텍스트·이미지데이터 구조- 화면 재생성과 백그라운드 전환 중에도 이어지는 ViewModel 기반 저장 큐
- 빠른 연속 입력 배치 저장과 저장 지연 감지
- 비정상 종료 후 미완료 획 자동 복구 저널
- 페이지별 자동 버전 기록, 미리보기와 이전 버전 복원
- 페이지 썸네일, PDF·이미지 Bitmap과 내보내기 캐시 관리
- 저장 공간 사용량 확인과 다시 생성 가능한 캐시 정리
| 구분 | 제공 항목 |
|---|---|
| 화면 | 시스템·라이트·다크 테마, 흰색 또는 화면 전용 다크 속지 |
| 필기 | 기본 속지, 스타일러스 전용 또는 터치 필기 입력 |
| 동작 | 페이지 넘김 제스처, 화면 켜짐 유지, 조작 진동 |
| 저장소 | 휴지통 보관 기간, 자동 버전 기록 개수, 저장 공간 및 캐시 정리 |
| 앱 | 시작 안내 다시 보기, 사용자 설정 초기화, 앱 버전 확인 |
다크 속지는 화면 표시 전용입니다. PDF 원본과 PNG·WebP·PDF 내보내기 결과에는 앱 테마를 적용하지 않습니다.
| 화면 | 설명 |
|---|---|
| 대시보드 | 노트북·검색·휴지통 필터와 실제 필기 썸네일로 노트를 관리합니다. |
| 필기 캔버스 | 포인터, 펜, 형광펜, 지우개, 올가미, 도형과 텍스트 도구로 페이지를 편집합니다. |
| 페이지 패널 | 썸네일로 페이지를 선택하고 삭제하거나 순서를 변경합니다. |
| 설정 | 테마, 입력 방식, 동작, 보관·복구와 저장 공간 정책을 관리합니다. |
| 시작 안내 | 입력 방식과 주요 제스처, 펜 압력, PDF 가져오기를 안내합니다. |
| 키 | 동작 |
|---|---|
P |
둘러보기 도구 |
1 ~ 5 |
펜, 형광펜, 지우개, 올가미, 텍스트 |
[ / ] |
이전 / 다음 페이지 |
- / 0 / + |
축소 / 초기화 / 확대 |
Ctrl 또는 Command + Z |
실행 취소 |
Ctrl 또는 Command + Shift + Z, Ctrl 또는 Command + Y |
다시 실행 |
Delete 또는 Backspace |
선택 요소 삭제 |
Esc |
진행 중인 작업 및 선택 취소 |
- Kotlin / XML View / ViewBinding
- Single Activity + Fragment + Navigation Component
- MVVM, ViewModel, StateFlow, SavedStateHandle
- Room 2.8.4 + KSP 2.3.9, 데이터베이스 schema v7
- Material 3, ConstraintLayout, RecyclerView, DrawerLayout
- SEED 기반 시맨틱 색상·타이포그래피·간격 토큰
- Android
Canvas,Path,PdfRenderer,PdfDocument - 최소 Android 8.0(API 26), target SDK 36
NoteUp/app/src/main/java/com/kotlinsun/noteup
├── data
│ ├── local # Room DB, Entity, DAO, Migration과 획 코덱
│ ├── repository # 로컬 Repository 구현
│ ├── pdf # PDF 가져오기·보관·고해상도 렌더링
│ ├── image # 캔버스 이미지 파일 관리
│ ├── thumbnail # 페이지 썸네일 생성과 캐시
│ ├── export # PNG·WebP·PDF 내보내기
│ ├── recovery # 비정상 종료 복구 저널
│ ├── version # 페이지 스냅샷과 버전 기록
│ ├── preferences # 앱·도구·팔레트 설정
│ └── storage # 저장 공간 사용량 관리
├── domain # 도메인 모델과 Repository 인터페이스
├── rendering # 획·텍스트·페이지 공통 렌더러
└── ui
├── dashboard # 노트 보관함
├── canvas # 필기·선택·페이지 편집
├── pdfimport # 외부 PDF 가져오기 흐름
├── onboarding # 시작 안내와 펜 미리보기
├── settings # 사용자 환경 설정
└── common # 공통 UI 보조 코드
주요 데이터 흐름은 Fragment → ViewModel → NoteRepository → Room·앱 전용 파일 저장소 구조입니다. 필기 입력은 먼저 캔버스에 표시한 뒤 Repository 작업 큐에 전달합니다.
smallestWidth 600dp이상의 Android 태블릿- 사용자 회전 설정을 따르는 가로·세로 및 역방향 화면
- Android Studio, Android SDK 36, JDK 17 이상
- Gradle Wrapper 9.4.1
Android Studio에서 저장소 안의 NoteUp 디렉터리를 프로젝트로 열어 실행합니다. 별도의 API 키나 외부 서비스 설정은 필요하지 않습니다.
cd NoteUp
./gradlew assembleDebug- 휴대전화 UI와 클라우드 동기화는 지원하지 않습니다.
- 암호로 보호된 PDF, PDF 양식·링크 실행과 원본 PDF 직접 수정은 지원하지 않습니다.
- 선택 요소 회전, 자유 비율 변형과 시스템 클립보드 연동은 지원하지 않습니다.
- 가져온 PDF와 이미지, 노트 데이터는 앱의 로컬 저장소에서 관리됩니다.