explaingit

smuyyh/bookreader

6,892JavaAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

An Android app for reading Chinese web novels and local ebooks that also serves as a learning reference for wiring RxJava, Retrofit2, and Dagger2 together in a real project. The original online API is now defunct.

Mindmap

mindmap
  root((bookreader))
    What it does
      Android ebook reader
      Local file support
      Chinese novel reading
    Tech Stack
      Java
      RxJava
      Retrofit2
      Dagger2
    Features
      3D page flip
      TXT PDF EPUB
      WiFi file transfer
      Day and night mode
    Use Cases
      Architecture reference
      Reader UI patterns
      DI in Android
    Status
      Not maintained
      Online API defunct
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Study how RxJava, Retrofit2, and Dagger2 are wired together in a real Android project.

USE CASE 2

Use the local ebook reader source code as a reference for building an Android app that opens TXT, PDF, and EPUB files.

USE CASE 3

Borrow the 3D page-flip animation implementation for a reading or card-based Android UI.

Tech stack

JavaAndroidRxJavaRetrofit2Dagger2

Getting it running

Difficulty · moderate Time to first run · 1h+

The original online novel API is shut down, only local file reading features work, all network-dependent screens will fail.

Apache 2.0, use freely for any purpose including commercial, as long as you keep the copyright notice.

In plain English

BookReader, titled in Chinese as "Renyue" (任阅), is an Android app for reading Chinese web novels and local ebooks. It was built as a learning project and demonstration of modern Android architecture patterns using RxJava, Retrofit2, and Dagger2, which are libraries commonly used together to handle network requests, reactive data flows, and dependency management in Android apps. The app originally connected to an online Chinese novel platform called Zhuishu Shenqi to let users browse recommended books, search for titles by tags or keywords, view book details, follow reading lists, and check popularity charts. The reader itself featured a 3D page-flip animation that simulates turning physical pages, along with settings for font size, theme, and brightness. Day and night reading modes were included. The app could also read local files in TXT, PDF, and EPUB formats and supported transferring books from a computer to the phone over a local WiFi connection. The README notes that the project is no longer maintained. The original API it relied on from the online novel platform has since been shut down, which means any features that required a network connection will fail. The author mentions that pagination, page-flipping, and performance were not implemented well in this version and have been improved in a successor project called NovelReader, though that one is not open-source. The reading-related source code is still available and can be used as a reference. The screenshots in the README show the home page, reading screens, book detail pages, community discussion sections, ranking lists, and the WiFi transfer screen. The project is licensed under Apache 2.0.

Copy-paste prompts

Prompt 1
Show me how the BookReader Android app uses Dagger2 to inject a Retrofit2 service into an Activity, using the project's actual structure as a reference.
Prompt 2
Using the BookReader source as a guide, write an Android Fragment that fetches a list of books from a REST API using Retrofit2 and displays them reactively with RxJava.
Prompt 3
How does BookReader implement the 3D page-flip animation in Android? Explain the key classes and show me how to adapt the effect for my own reading app.
Prompt 4
I want to add local EPUB support to my Android app. Walk me through how BookReader loads and displays EPUB files and what libraries it uses.
Open on GitHub → Explain another repo

← smuyyh on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.