ReadBooks
A full-featured Android ebook reader for Project Gutenberg's library. Browse and search tens of thousands of free books, download EPUBs for offline reading, listen with text-to-speech, and track your progress with reading goals and achievements.
ReadBooks is a hobby project built around two ideas: learning modern Android development properly, and having a genuinely usable ebook reader.
It pulls book data from a self-hosted Gutendex instance (with public fallback) and enriches it with author and cover info from OpenLibrary. EPUB rendering is handled by the Readium toolkit, with full text-to-speech support via a mini/full player UI.
Architecture
The project follows Clean Architecture across a multi-module Gradle setup — domain, data, UI, and common are all separate modules. It uses MVVM with StateFlow-backed ViewModels, use cases for business logic, and Hilt for dependency injection throughout.
Backend
User accounts, sync, and ratings are backed by a companion Spring Boot / Kotlin REST API (separate repo), self-hosted with PostgreSQL and JWT auth. The app is fully usable in guest mode without an account.
Screenshots