Skip to content

kennss/hwpad

Repository files navigation

HWPad

iPad HWP/HWPX 문서 뷰어 + Apple Pencil 주석 — App Store 무료 출시 · 다운로드

iPad 전용 한컴 한글 (HWP / HWPX) 및 PDF 문서 뷰어. Apple Pencil 손글씨 주석을 페이지 좌표에 anchor 한 .hopa 패키지로 보존하며, iCloud Drive 동기화를 지원합니다. 오픈소스 rhwp Rust 엔진 (MIT) 위에 빌드됨.

📱 App Store: https://apps.apple.com/app/id6773033442 · 🌐 Landing: https://hwpad.calidalab.ai/ · 📄 Privacy: https://hwpad.calidalab.ai/privacy.html

라이브러리 Apple Pencil 주석
HWPad library HWPad annotation

면책 고지

본 앱은 (주)한글과컴퓨터 와 무관한 독립 개발 앱입니다. HWP / HWPX 는 (주)한글과컴퓨터의 파일 형식이며, 본 앱은 공개 명세에 기반한 오픈소스 엔진 rhwp 을 사용합니다. "한글", "한컴" 등은 각 권리자의 등록상표이며, 본 앱은 호환성 표시 목적으로만 해당 명칭을 사실 그대로 인용합니다.


v1.0 핵심 기능

영역 상태
한글 (.hwp / .hwpx) 문서 뷰어
PDF 문서 뷰어
Apple Pencil 주석 (펜·연필·형광펜)
페이지 좌표 기반 anchor — 줌/스크롤 invariant
.hopa 패키지 영속화 + UIDocument autosave
iCloud Drive 동기화
페이지 썸네일 사이드바 + 목차 + 북마크
빠른 키워드 검색 (rhwp bbox 기반)
라이트 / 세피아 / 다크 테마
PDF / AirPrint / .hopa 공유
표 / 그림 / 수식 (분수·적분·행렬) 렌더링
STIX Two Math + Source Han Sans/Serif KR 번들
데이터 수집 0 / 광고 0 / 자체 서버 0

Architecture

HWPADApp (SwiftUI)
└─ ContentView
   └─ LibraryScreen  ← 사이드바 + 카드 grid + UIDocumentPicker
      └─ ViewerScreen  ← UIKit modal (SwiftUI lifecycle 우회)
         ├─ TopBar       ← 뒤로/사이드바/제목/검색/북마크/공유/펜/설정
         ├─ pageArea     ← ZoomablePageView + PencilKit overlay
         ├─ penToolbar   ← floating annotation tools
         ├─ bottomScrubber
         └─ sheets       ← Sidebar/Search/Share/Settings/Info

Core/
├─ Rhwp/      ← Swift wrapper for RhwpNative.xcframework (Rust C ABI)
├─ Rendering/ ← PageLayerTree → CGContext + EquationRenderer (LayoutBox)
├─ Document/  ← .hopa UIDocument package (HWP + PKDrawing per-page)
└─ ...

rust-extensions/  ← rhwp 위에 동작하는 C ABI 확장 (Cargo path dep)
external/rhwp/    ← git submodule, READ-ONLY (v0.7.12 pinned)

자세한 아키텍처는 Documentation/Dev-plan 참조.

Tech Stack

  • App: Swift 5.9+, SwiftUI, UIKit, Combine, async/await
  • Document Engine: rhwp (Rust → XCFramework)
  • Rendering: Core Graphics + Core Text (no Skia)
  • Annotation: PencilKit (PKCanvasView / PKDrawing / PKToolPicker)
  • PDF: PDFKit (composite output)
  • Storage: UIDocument (per-document .hopa package)
  • Sync: iCloud Drive (NSFileCoordinator)
  • Target: iPadOS 17+ · iPad Pro M-series / iPad Air / iPad mini

Build

Prerequisites

rustup target add aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios
# Xcode 15.2+ / Swift 5.9+

First-time setup

git submodule update --init external/rhwp
./scripts/build-xcframework.sh   # rhwp + rust-extensions → Dist/RhwpNative.xcframework
open HWPAD.xcodeproj

Build for simulator

xcodebuild \
  -project HWPAD.xcodeproj \
  -scheme HWPAD \
  -destination 'platform=iOS Simulator,name=iPad Pro (13-inch) (M4)' \
  build

Archive (App Store distribution)

Xcode → Product → Archive (Any iOS Device (arm64)) → Distribute App → App Store Connect.
필요: Calida Lab Inc. (DEVELOPMENT_TEAM 8677QL77VJ) Apple Developer 계정.

Deploy Homepage

./scripts/deploy-homepage.sh
# → rsync to Digital Ocean droplet + nginx reload
# → https://hwpad.calidalab.ai/

Documentation

문서 내용
Documentation/CONVENTION.md 코딩 컨벤션
Documentation/Dev-plan v0.5 마스터 아키텍처
Documentation/Backlog-v1.1.md v1.1+ 백로그
Documentation/AppStore-Metadata.md App Store Connect 메타데이터
Documentation/TO-DO TODO 진행 / 해결 기록

License

  • HWPad app: MIT — © 2026 Calida Lab Inc. (see LICENSE)
  • rhwp engine (embedded via XCFramework): MIT © edwardkim/rhwp — attribution in app's About screen
  • 번들 폰트:
    • Source Han Sans KR / Source Han Serif KR — Apache 2.0 © Adobe
    • STIX Two Math — OFL 1.1 © STI Pub Companies
    • Pretendard (landing page only) — OFL 1.1 © Kil Hyung-jin
  • Apple frameworks (PencilKit, PDFKit, StoreKit): Apple SDK license
  • 한컴 폰트: 미사용 (라이선스 미보유, Apple SD Gothic Neo 등으로 대체 렌더링)

Maintainer

Kennt Kim · Calida Lab · kenntkim66@gmail.com

About

HWPad — iPad HWP/HWPX viewer + Apple Pencil annotation. Built on rhwp (MIT).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors