diff --git a/README.md b/README.md index a6af8ee..b92844f 100644 --- a/README.md +++ b/README.md @@ -5,62 +5,63 @@  Episteme Reader -

A modern, offline‑first, privacy‑focused document & e‑book reader for Android, built with Kotlin and Jetpack Compose.

+

A modern, offline-first, privacy-focused document and e-book reader for Android and desktop, built with Kotlin Multiplatform and Compose.

- Get it on F-Droid Get it on Google Play   Get it on Obtainium + Download from epistemereader.com  Get it on F-Droid Get it on Google Play   Get it on Obtainium
-![Episteme Reader Preview](docs/EPISTEME.png) + + + + + +
+ Episteme Reader on Android +
+ Android +
+ Episteme Reader on desktop +
+ Desktop +
## Overview -Episteme Reader is a comprehensive, customizable reader for documents and e-books on Android. It features a modern Jetpack Compose UI, powerful reading tools, and extensive theming. +Episteme Reader is a customizable reader for documents, e-books, comics, and text-heavy files. The app is designed around local-first reading, deep typography controls, flexible layouts, and a consistent Kotlin Multiplatform core across Android and desktop. -To best serve different user preferences regarding privacy and network usage, Episteme Reader is available in three distinct editions: -* **PlayStore Version:** The full-featured release which includes proprietary code and features. -* **OSS Version (GitHub/F-Droid):** A fully open-source build. -* **OSS Offline Version (GitHub):** A strictly offline build with network permissions completely removed. +The same core reading experience is available across editions. The main differences are distribution channel, network access, and whether proprietary online services are included. ---- +## Core Features -## Feature Comparison +Available across supported editions unless noted in the edition table: -### πŸ“š Supported Formats -| Feature | PlayStore | OSS | OSS Offline | -| :--- | :---: | :---: | :---: | -| **Documents:** PDF, DOCX, ODT/FODT | βœ… | βœ… | βœ… | -| **E-books & Text:** EPUB, MOBI, AZW3, FB2, MD, HTML, TXT | βœ… | βœ… | βœ… | -| **Comics:** CBZ, CBR, CB7 | βœ… | βœ… | βœ… | -| **View-Only:** CSV, TSV, JSON, XML, Logs, Code Files | βœ… | βœ… | βœ… | +* **Formats:** PDF, EPUB, MOBI/AZW3, FB2, DOCX, ODT/FODT, TXT, Markdown, HTML, and comic archives. +* **Reading modes:** Paginated reading, vertical scroll, PDF multi-tab reading, PDF reflow, auto-scroll, and musician mode. +* **PDF tools:** Ink annotations, highlighting, erasing, text annotations, and reading-focused PDF controls. +* **Customization:** App themes, reader themes, custom local fonts, typography controls, spacing, margins, and layout tuning. +* **Library tools:** Local folder sync, library organization, bookmarks, progress tracking, and file management. +* **Accessibility:** System text-to-speech, app language selection, and reader settings that adapt to different reading preferences. -### πŸ“– Core Reading Experience -| Feature | PlayStore | OSS | OSS Offline | -| :--- | :---: | :---: | :---: | -| **Display Modes:** Paginated & Vertical Scroll | βœ… | βœ… | βœ… | -| **PDF Multi-Tab Reading & Reflow** | βœ… | βœ… | βœ… | -| **PDF Annotations:** Ink (Pen, Highlight, Erase) & Text | βœ… | βœ… | βœ… | -| **App-wide Customization & Reader Theming** | βœ… | βœ… | βœ… | -| **Custom Fonts:** Local Import (TTF and OTF) | βœ… | βœ… | βœ… | -| **Typography Control** | βœ… | βœ… | βœ… | -| **Auto-Scroll & Musician Mode** | βœ… | βœ… | βœ… | -| **System Text-to-Speech (TTS)** | βœ… | βœ… | βœ… | +## Editions -### βš™οΈ Advanced & Network Features -| Feature | PlayStore | OSS (F-Droid) | OSS Offline | -| :--- | :---: | :---: | :---: | -| **Local Folder Sync & Library Management** | βœ… | βœ… | βœ… | -| **Download Google Fonts** | βœ… | βœ… | ❌ | -| **OPDS Catalog Support** | βœ… | βœ… | ❌ | -| **PDF Bubble Zoom Magnifier** | βœ… | ❌ | ❌ | -| **ML Kit OCR** (Scanned PDF Text Selection) | βœ… | ❌ | ❌ | -| **Cross-Device Cloud Sync** | βœ… | ❌ | ❌ | -| **AI Tools** (Summaries, Story Recap, Dictionary) | βœ… | πŸ”œ | ❌ | -| **Cloud Text-to-Speech** | βœ… | πŸ”œ | ❌ | +| Edition | Platform | Network access | Distribution | Notes | +|---|---|---|---|---| +| **Play Store** | Android | Online-capable | Google Play | Full Android release with proprietary extras such as ML Kit OCR, cloud sync, AI tools, cloud TTS, and PDF bubble zoom. | +| **OSS** | Android | Online-capable | [epistemereader.com](https://epistemereader.com), GitHub, F-Droid, Obtainium | Fully open-source Android build with OPDS, downloadable fonts, and BYOK access to AI and cloud features. | +| **OSS Offline** | Android | Offline-only | [epistemereader.com](https://epistemereader.com), GitHub, Obtainium | Open-source Android build with network permissions removed. | +| **Standard** | Windows desktop | Online-capable | [epistemereader.com](https://epistemereader.com), GitHub | Full-featured desktop release with the shared KMP reader core and online-capable services. | +| **Offline** | Windows desktop | Offline-only | [epistemereader.com](https://epistemereader.com), GitHub | Desktop build focused on local reading with online services disabled. | ---- +Future desktop platforms can use the same Standard and Offline model as support expands. + +## Languages + +Episteme Reader currently supports: English, Arabic, Belarusian, German, Spanish, Estonian, French, Hindi, Indonesian, Italian, Japanese, Korean, Dutch, Polish, Portuguese (Brazil), Russian, Turkish, Ukrainian, Vietnamese, and Chinese Simplified. + +Want Episteme Reader in another language? Please request it through [GitHub Issues](https://github.com/Aryan-Raj3112/episteme/issues/new/choose) or start a thread in [Discussions](https://github.com/Aryan-Raj3112/episteme/discussions). ## Building from Source @@ -70,7 +71,7 @@ To best serve different user preferences regarding privacy and network usage, Ep cd episteme ``` -2. Build: +2. Build Android: * Open in Android Studio and run the `ossDebug` or `ossOfflineDebug` variant, or * Build from the command line: ```bash @@ -79,43 +80,56 @@ To best serve different user preferences regarding privacy and network usage, Ep The APK will be generated at: `app/build/outputs/apk/oss/debug/Episteme-oss-v{version}-oss-debug.apk` +3. Build desktop: + ```bash + ./gradlew :desktopApp:packageReleaseDistributionForCurrentOS + ``` + For the offline desktop build, pass: + ```bash + ./gradlew :desktopApp:packageReleaseDistributionForCurrentOS -PdesktopFlavor=oss + ``` + ## Open Source Libraries -Powered by the Android OSS ecosystem: -* **Core & UI:** AndroidX, Jetpack Compose, Kotlinx Serialization -* **Document Engines:** PdfiumAndroidKt (PDF), libmobi (MOBI/AZW3) -* **Parsers:** Jsoup (HTML/EPUB), Flexmark (Markdown) -* **Media & Image Loading:** Coil, Media3 (ExoPlayer) -* **Utilities:** Room (Database), Timber (Logging) +Powered by the Kotlin, Android, and desktop OSS ecosystem: + +* **Core and UI:** Kotlin Multiplatform, Compose Multiplatform, AndroidX, Jetpack Compose, Kotlinx Serialization +* **Document engines:** PdfiumAndroidKt, PDFium, libmobi +* **Parsers:** Jsoup, Flexmark, Apache Commons Compress +* **Media and image loading:** Coil, Media3 +* **Utilities:** Room, Timber, JNA ## Contributors | Contributor | Contribution | |---|---| -| CCerrer avatar[CCerrer](https://github.com/CCerrer) | Testing & QA | -| ottozumkeller avatar [ottozumkeller](https://github.com/ottozumkeller) | Translation (German) | -| TURBOKANTR avatar [TURBOKANTR](https://github.com/TURBOKANTR) | Translation (Turkish) | -| eyadalkordy24 avatar[eyadalkordy24](https://github.com/eyadalkordy24) | Translation (Arabic) | -| berebara avatar[berebara](https://github.com/berebara) | Translation (Russian) | -| mh4ckt3mh4ckt1c4s avatar[mh4ckt3mh4ckt1c4s](https://github.com/mh4ckt3mh4ckt1c4s) | Translation (French) | +| CCerrer avatar [CCerrer](https://github.com/CCerrer) | Testing and QA | +| ottozumkeller avatar [ottozumkeller](https://github.com/ottozumkeller) | German translation | +| TURBOKANTR avatar [TURBOKANTR](https://github.com/TURBOKANTR) | Turkish translation | +| eyadalkordy24 avatar [eyadalkordy24](https://github.com/eyadalkordy24) | Arabic translation | +| berebara avatar [berebara](https://github.com/berebara) | Russian translation | +| mh4ckt3mh4ckt1c4s avatar [mh4ckt3mh4ckt1c4s](https://github.com/mh4ckt3mh4ckt1c4s) | French translation | -## Translations +## Supporters -Help translate Episteme Reader into your native language! [Weblate](https://hosted.weblate.org/engage/episteme/) is used to manage localization. +Thank you to the people helping keep Episteme Reader moving: -[![Translation status](https://hosted.weblate.org/widget/episteme/multi-auto.svg)](https://hosted.weblate.org/engage/episteme/) - -## License - -Licensed under the GNU Affero General Public License v3.0 (AGPL‑3.0). See the [LICENSE](LICENSE) file. +| Supporter | Platform | +|---|---| +| Zorklo avatar [Zorklo](https://github.com/Zorklo) | GitHub Sponsors | ## Support the Project -Help make Episteme Reader even better: +Help make Episteme Reader better: -* ❀️ [Support on Patreon](https://www.patreon.com/c/epistemereader) -* ⭐ Star the repository to help visibility -* 🐞 Report bugs or request features via [GitHub Issues](https://github.com/Aryan-Raj3112/episteme/issues/new/choose) -* πŸ’¬ Share feedback in [Discussions](https://github.com/Aryan-Raj3112/episteme/discussions) -* ✍️ Leave a review on the [Google Play Store](https://play.google.com/store/apps/details?id=com.aryan.reader) -* πŸ“£ Tell a friend! +* [Sponsor on GitHub](https://github.com/sponsors/Aryan-Raj3112) +* [Support on Patreon](https://www.patreon.com/c/epistemereader) +* Star the repository to help visibility +* Report bugs or request features via [GitHub Issues](https://github.com/Aryan-Raj3112/episteme/issues/new/choose) +* Share feedback in [Discussions](https://github.com/Aryan-Raj3112/episteme/discussions) +* Leave a review on the [Google Play Store](https://play.google.com/store/apps/details?id=com.aryan.reader) +* Tell a friend + +## License + +Licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the [LICENSE](LICENSE) file.