GitHub - archko/KReader

KReader https://www.pgyer.com/kreader-android

A modern PDF reader built with Kotlin Multiplatform and Jetpack Compose, providing a smooth reading experience across multiple platforms.Support pdf, epub, mobi, djvu, xps, fb, cb, images, (docx, pptx) also support tiff, bigtiff.

About

Why did I create this app? There are many PDF readers based on the Android View system on the market, but so far, none have been built on Compose.\n Thatโ€™s why I developed this appโ€”a Compose-based PDF reader that supports all platforms.\n Currently, zooming and scrolling functions are very smooth, but the full range of features from the old reader has not yet been migrated.\n Due to time constraints, the app has been implemented on Android. For iOS, compiling MuPDF is required, while the desktop version of MuPDF is easy to compile, so it wonโ€™t be uploaded.\n At present, epub/mobi supported custom font. It should be placed in the directory /sdcard/fonts/, and both TTF and OTF font formats are compatible.\n

Features

  • Smooth Zooming & Scrolling: Optimized for fluid reading experience
  • Auto crop margin: Auto crop margin
  • Rich Gestures: Intuitive touch interactions
  • Tts: Use System Tts
  • Text Selection: text selection for pdf/epub/mobi
  • Support album: support album/image
  • Multi-platform Support: Android, iOS, and Desktop
  • Modern UI: Built with Jetpack Compose
  • Support format: pdf, epub, mobi, djvu, xps, fb, cbz, images, (docx, pptx)
  • Editor: create pdf from images. convert mobi/azw3 to epub. encrypt/decrypt pdf, export images, webdav backup

Technology Stack

  • Kotlin Multiplatform: Cross-platform development
  • Jetpack Compose: Modern UI toolkit
  • MuPDF: PDF rendering engine
  • SQLDelight: Database management
  • Compose Multiplatform: UI framework for multiple platforms

Supported Platforms

  • โœ… Android
  • ๐Ÿ”„ iOS (requires MuPDF compilation)
  • ๐Ÿ”„ Desktop (support mac, in windows MuPDF compilation needed)

Development Status

  • Core Features: โœ… Implemented
  • Smooth Scrolling: โœ… Implemented
  • Zoom Functionality: โœ… Implemented
  • Gesture Support: โœ… Implemented
  • Windows dll: ๐Ÿ”„ Pause

Building

Prerequisites

  • Kotlin 1.9+
  • Android Studio / IntelliJ IDEA
  • Gradle 8.0+

Android

./gradlew assembleDebug installDebug

Desktop

./gradlew composeApp:desktopRun -DmainClass=com.archko.reader.viewer.MainKt --quiet

License

This project is licensed under the terms specified in the LICENSE file.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.