Skip to content

Latest commit

 

History

88 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

NoteUp

빠른 필기감과 정돈된 로컬 보관에 집중한 Android 태블릿 필기 워크스페이스

NoteUp은 종이 노트를 펼치듯 바로 쓰고, 노트북과 페이지 단위로 기록을 관리하는 오프라인 우선 필기 앱입니다. 스타일러스뿐 아니라 터치 입력을 지원하며 PDF·이미지 위 필기, 선택 편집, 내보내기와 자동 복구까지 하나의 작업 공간에서 제공합니다.

핵심 가치

  • Zero Delay: 입력 중인 획을 화면에 즉시 렌더링하고 저장 작업은 직렬 큐에서 별도로 처리합니다.
  • Analog Simplicity: 자주 쓰는 도구를 아이콘 툴바와 상황별 설정 패널로 간결하게 제공합니다.
  • Clean Archive: 노트북, 노트, 페이지와 휴지통을 로컬에서 일관되게 관리합니다.

주요 기능

노트 보관함

  • 모든 노트, 미분류, 노트북별 노트와 휴지통 필터
  • 현재 필터와 결합되는 제목 실시간 검색
  • 노트북·노트 생성, 이름 변경, 이동과 삭제
  • 노트북 삭제 시 포함된 노트를 미분류 상태로 보존
  • 노트 복구, 영구 삭제와 7일·30일·90일 자동 정리
  • 실제 첫 페이지 필기 썸네일과 최근 수정일 기준 카드 정렬
  • 가로 화면 고정 사이드바와 세로 화면 내비게이션 Drawer

필기 및 편집

  • 압력 기반 가변 굵기 펜과 반투명 형광펜
  • 획 단위·접촉 영역 지우개와 실시간 삭제 미리보기
  • 기본 색상과 HSV 컬러 피커, 사용자 색상 등록·삭제
  • 현재 편집 세션의 Undo / Redo
  • 직선, 사각형, 원 도형과 다중 행 텍스트 상자
  • 텍스트 터치 선택, 드래그 이동과 더블 탭 내용 편집
  • 갤러리 이미지 삽입, 이동, 비율 조절, 복사·붙여넣기와 삭제
  • 올가미로 획·도형·텍스트·이미지를 함께 선택하고 변형
  • 스타일러스 전용 또는 스타일러스·터치 필기 모드 선택
  • 스타일러스 사이드 버튼과 하드웨어 지우개 입력 지원

캔버스와 페이지

  • 둘러보기 도구에서 터치·마우스·스타일러스 드래그 이동
  • 두 손가락 확대·이동, 마우스 휠 확대와 100~400% 배율 조작
  • 좌우 스와이프 및 하단 이전·다음 버튼 페이지 이동
  • 백지, 줄노트, 모눈 속지와 기본 속지 설정
  • 페이지 추가, 빠른 선택, 삭제, 마지막 페이지 보호와 드래그 순서 변경
  • 가로·세로 화면별 반응형 툴바와 페이지 패널
  • 페이지별 확대 위치를 현재 앱 세션 동안 유지

PDF·이미지·공유

  • 파일 앱의 열기 또는 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와 이미지, 노트 데이터는 앱의 로컬 저장소에서 관리됩니다.

About

태블릿 전용 기본 필기 워크스페이스

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages