BookReader
My ongoing Android free to use project: a high-performance native novel reader with on-device neural TTS audio, quote-aware sentence chunking, persistent notification media bar, and offline audiobook synthesis.
Native Android Experience
Explore BookReader's custom Jetpack Compose interface in its signature sepia reading theme, on-device neural TTS voice engines, and persistent background playback.
Library & Playlist Hub
NovelArrow Reader Pro · Root Folder & Scoped Storage
Pick any root folder on your Android device. Every subfolder automatically becomes its own reading playlist with independently tracked chapter progression and offline text-to-speech audio state.
Key Capabilities
- Automatic subfolder playlist indexing via Android Storage Access Framework
- Crash-proof chapter progress saving using AtomicFile
- Instant one-tap Resume directly from the home deck
- Offline-first architecture with zero mandatory network connectivity
Kotlin Coroutines · AndroidX DocumentFile · AtomicFiles All Screen Captures
Key Features
On-Device Neural Voices
Kokoro TTS (82M prosody), Piper TTS (<65MB Arabic, French, and English), and KittenTTS (<30MB) running entirely on device with zero cloud latency.
Notification Shade Toolbar
AndroidX Media3 foreground service keeping reading speed cycling (1.0x, 1.25x), sleep timers, and chapter skipping pinned to your notification bar.
Batch Chapter Audio Studio
Automatically synthesizes novel text into standalone MP3 audio files with custom folder management, seekbar playback, and background worker.
Live Web TTS & Scraper
Multi-tab in-app browser with Jsoup DOM pipeline stripping ads and sidebars, streaming clean web novels directly into the speech synthesis engine.
Background Audio Playback
AndroidX Media3 MediaSessionService with full lock screen controls, earbud click triggers, and audio focus management for phone calls.
Responsive Sepia UI
Jetpack Compose Material 3 in warm sepia, dark OLED, and light modes. Clean typography, quote-aware sentence tokenizer, and custom speech rate.
Content Filters & Replacement
Header/footer skip keywords, HTML CSS selectors, word skip rules, and pronunciation phonetic replacements for clean reading.
Crash-Proof Scoped Storage
AtomicFile writes for zero corruption on sudden OS kills. All reading playlists and chapter progress survive aggressive Android battery killers.
Userscript Engine
Modular script injection with wildcard URL pattern matching, custom DOM manipulation, and site-specific novel overrides.
Architecture & Technology
Jetpack Compose M3 Fully declarative Kotlin UI with Material Design 3 theming. Signature sepia/dark/light themes, bottom dock media controls, and full-width adaptive dialogs for settings.
AndroidX Media3 + ExoPlayer Decoupled MediaSessionService operating in an independent Android Service lifecycle. Survives orientation changes, app minimization, and handles audio focus for calls and navigation prompts.
Neural Engines (Kokoro / Piper) + Native TextToSpeech Multi-engine speech synthesis abstraction. Regex-based quote-aware tokenizer with quote protection (", «», ""), abbreviation shielding (Mr., Dr., Ch.), and CJK terminal character detection.
Jsoup + WebView Jsoup DOM pipeline for chapter extraction using user-configurable CSS selectors. JavascriptInterface bridge for userscript injection with wildcard URL matching.
AtomicFile + Kotlin Coroutines Crash-resistant persistence via Android AtomicFile (write → staging file → atomic rename). Thread-safe access with Coroutine Mutexes. Zero special permissions required.
Clean Architecture + MVVM Decoupled domain, data, and presentation layers. StateFlow-driven reactive UI state, centralized AudioPlaybackCoordinator service, and Coroutine-based async operations.