# Yuedu
Apple Books-inspired open-source reader for iOS.
> Featured in [iOS Dev Weekly #751](https://iosdevweekly.com/issues/751) — [*From WebView to CoreText: Building a Native EPUB Reader for iOS*](https://chang-jui-lin.github.io/Yuedu-reader/2026/05/20/from-webview-to-coretext/). Yuedu is an open-source reading application focused on a high-quality local and open reading experience. One app for EPUB3, comics, audiobooks, RSS, and open catalogs — rendered natively with CoreText, no WebView. ## Features | | | |:--|:--| | **Formats** | EPUB3 · TXT · CBZ Comics · Audiobook · PDF *(WIP)* | | **Content** | Local Library · WebDAV · OPDS · RSS · Content Sources | | **Reading** | Vertical Writing · Themes · Annotation · Bookmarks | | **More** | Reading Statistics · iCloud Sync | ## Why CoreText, not WebView Most readers wrap content in a WebView. Yuedu renders every page with CoreText, which gives precise pagination, true CJK vertical writing, frame-accurate text-to-speech sync, and native text selection — at native performance. The full story is in [*From WebView to CoreText*](https://chang-jui-lin.github.io/Yuedu-reader/2026/05/20/from-webview-to-coretext/). ## Architecture ``` UI (SwiftUI) ↓ Reader (CoreText) ↓ Parser (EPUB / TXT / CBZ / RSS / Audio) ↓ Storage (Local-first) ↓ Sync (WebDAV / iCloud / OPDS) ``` ## Build **Requirements:** Xcode 16+ · iOS 18.0+ · Swift 6.0 ```bash git clone https://github.com/CHANG-JUI-LIN/Yuedu-reader.git cd Yuedu-reader open Yuedu-Reader.xcodeproj ``` Then select a simulator (or your device) and run. Self-built versions need their own signing configuration and bundle identifier. Publicly redistributed forks must use distinct app names, icons, and branding and must not imply official endorsement. ## Official App Store build The source code is open source. The App Store version is the official build maintained, signed, reviewed, distributed, and supported by the project owner. Its purchase price supports ongoing development and release maintenance. ## Documentation ### User guides - **Battery SVG templates:** [English](docs/reader-overlay/BatterySVG.en.md) · [简体中文](docs/reader-overlay/BatterySVG.zh-Hans.md) · [繁體中文](docs/reader-overlay/BatterySVG.zh-Hant.md) — template format, dynamic markers, supported SVG subset, and import troubleshooting. ### Developer reference - [CoreText documentation](docs/coretext/README.md) — reader architecture, rendering pipeline, interaction, and vertical writing. - [EPUB compatibility checklist](docs/epub-compatibility-checklist.md) — implementation and regression checklist. - [Project architecture](Technotes/Architecture.md) — modules, data flow, and technical boundaries. ## Contributing Contributions are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md) for conventions and the PR process. ## License Source code is licensed under the [Mozilla Public License 2.0](LICENSE). The Yuedu name, app icon, logo, screenshots, and other brand assets are not licensed under the MPL; see [TRADEMARKS.md](TRADEMARKS.md). Versions released before the license transition remain available under the license that applied when they were published; see [LICENSING.md](LICENSING.md).