ReadOut is a cross-platform reading companion for Android and Desktop, built with Kotlin Multiplatform and Compose Multiplatform. It empowers users to explore millions of books, stream thousands of free audiobooks, and access AI-generated summaries in both text and audio formats — all designed to save your time and keep you informed.
Download
.
Report Bug
.
Request Feature
The ReadOut app offers 28 million books, 20,000+ audiobooks, and features like AI-powered insights, personalized book searches, favorite book saving, dual themes, and seamless audio playback on both desktop and mobile. It's currently in the early stages of development, so feel free to report any issues or suggestions.
- Audiobook Playback (Desktop and Mobile)
- Extensive Book Browsing
- AI-Powered Book Insights
- Book Insight by User Input
- Save Favorite Books
- Search Books by Title, Author, or Genre
- Dual Themes (Dark and Light)
- Audio Background Playback Support
- User-Friendly Interface with Easy Navigation
The UI design is fully responsive, ensuring a user-friendly experience across all devices, regardless of screen size, also the UX is carefully designed to be intuitive and enjoyable, providing a smooth experience for every user.
Discover Books
- Open the app and navigate to the OpenLibrary section.
- Use the search bar to find books by title, author, or genre.
- Browse curated recommendations and popular titles.
Play Audiobooks
- Go to the Audiobooks section and select a book.
- Tap the Play button to start listening.
- Use the playback controls to pause, rewind, or fast-forward.
Generate Summaries
- Open the details page of any book.
- Tap the Summarize button to generate an AI-powered text or audio summary.
- Alternatively, navigate to the Summarize section.
- Enter the required details and tap the Summarize button.
Save Books
- Tap the Save icon on any book to add it to your saved list.
- Access your saved books in the Saved section.
Switch Themes
- Open the app’s settings.
- Toggle between Light and Dark themes to customize the app’s appearance.
Clear Data
- Open the app’s settings.
- Tap Clear all data to remove any saved books or cache from the app.
- Clone the repository:
git clone https://github.com/tawhidmonowar/ReadOut.git
- Open the project in Android Studio.
- Place API keys in
commonMain -> core -> utils -> ApiKey.kt
- Build and run the project using Gradle.
- Vlcj (For Desktop Audio Playback)
- Goolge Gemini API Key
- Goolge Cloud Text to Speech API Key
- Android Compile SDK 35
- Android Gradle Plugin "8.7.3"
- Kotlin "2.1.0"
This project follows the MVI (Model-View-Intent) design pattern combined with Clean Architecture principles to ensure a scalable, maintainable, and testable structure.
-
The Presentation Layer is responsible for rendering the UI and managing user interactions via a unidirectional flow of Intent, State, and ViewModel.
-
The Domain Layer encapsulates business logic in UseCases, This layer is completely independent of other layers, ensuring that it can be reused and tested in isolation.
-
The Data Layer abstracts data sources (API, Database) through a Repository pattern.
This project is powered by a combination of awesome technologies and libraries, Below is a list of what’s used.
Name | Description |
---|---|
Kotlin Multiplatform | Simplifies the development of cross-platform projects. |
Compose Multiplatform | Builds responsive, modern user interfaces across multiple platforms. |
Kotlin Serialization | Handles JSON and other formats with built-in serialization support. |
Material3 | Provides Material Design 3 components and guidelines for UI design. |
Datastore Preferences | A modern tool for storing key-value data locally. |
Koin | Manages dependencies in Kotlin apps with minimal effort. |
Ktor Client | Handles HTTP requests and networking in Kotlin. |
Coil | Loads images efficiently, designed specifically for Kotlin and Jetpack Compose. |
Media3 ExoPlayer | Seamless audio and video playback for Android apps. |
VLCJ | Adds VLC media playback capabilities for desktop Java applications. |
SQLite | An embedded SQL database for structured data storage. |
This project uses several APIs to enhance functionality and provide seamless user experiences. Below is a list of the APIs used in this project.
LibriVox API |
Open Library API |
Google Gemini API |
Cloud Text-to-Speech API |
Tawhid Monowar - Computer Science & Engineering Student
LinkedIn | Portfolio | Email