Novel Library
Your one-stop Android app for reading web novels from multiple sources with offline support, customizable reading experience, and cloud sync.
| Version |
Support Server |
| 2.4.1 |
 |
Features
- Read novels from multiple online sources via extensions
- Download chapters for offline reading
- Customizable reader with multiple themes and fonts
- Text-to-Speech (TTS) support with media controls
- Cloud sync across devices (Firebase integration)
- Library management with search and filtering
- Chapter tracking and reading progress
- Import reading lists from NovelUpdates
- Push notifications for novel updates
- Dark theme support
- Multi-language support
How to help with this project?
Contributions of all kinds are welcome:
- Report bugs or request features on GitHub Issues
- Fix bugs or add features by opening a Pull Request (see Contributing)
- Add or maintain novel sources in the extensions repository
- Improve translations — the app ships multi-language
strings.xml resources
- Help others and discuss ideas on our Discord server
Getting Started with Development
Prerequisites
- Android Studio (latest stable; AGP 9.2.0)
- JDK 17
- Android SDK with API 36 (compileSdk/targetSdk 36, minSdk 26)
- Android Build Tools 36.0.0
- Kotlin 2.3.10
Required Configuration Files
Before building the app, you need to download the following configuration files:
Download from: https://drive.google.com/drive/folders/0B2NcxiuA0KTIQnY0akJjb0NxWVE?usp=sharing
-
google-services.json - Firebase configuration file
-
keystore.properties - Signing configuration (for release builds)
Building the App
-
Clone the repository:
git clone https://github.com/gmathi/NovelLibrary.git
cd NovelLibrary
-
Add the required configuration files (see above)
-
Open the project in Android Studio
-
Sync Gradle files
-
Build and run:
./gradlew assembleNormalDebug
Build Variants
The app has three product flavors:
normal - Standard production build
mirror - Alternative build with different package name (can be installed alongside normal build)
canary - Development build with LeakCanary for memory leak detection
Extensions
Novel Library uses a modular extension system to support multiple novel sources. Extensions are distributed separately.
Extensions Repository: https://github.com/gmathi/NovelLibrary-Extensions
Tech Stack
- Kotlin (Coroutines, Serialization)
- Jetpack Compose (Material3) alongside View-based UI (ViewBinding/DataBinding)
- Android Jetpack (ViewModel, LiveData, WorkManager, Room)
- Firebase (Auth, Messaging, Crashlytics, Remote Config, Analytics)
- Retrofit + OkHttp for networking
- Glide & Coil for image loading
- Jsoup for HTML parsing
- RxJava for reactive programming
- Sherpa-ONNX for on-device Text-to-Speech
- AndroidX Media for TTS media session/notification controls
- Material Design Components
- KSP for annotation processing (Room, Glide)
Architecture
The app follows MVVM architecture pattern with:
- Repository pattern for data management
- Dependency injection using Injekt
- Background processing with WorkManager
- Local database for offline storage
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature)
- Commit your changes (
git commit -m 'Add some AmazingFeature')
- Push to the branch (
git push origin feature/AmazingFeature)
- Open a Pull Request
License
This project is licensed under the terms specified in the LICENSE file.
Privacy Policy
See Privacy-Policy for details on data collection and usage.
Support
Acknowledgments
- All contributors who have helped improve this project
- Open source libraries used in this project (see Libraries Used in app settings)
- Novel source websites for providing content
评论