An Android app for browsing, reading, and downloading manga from multiple sources. It uses Jetpack Compose for UI, Room for storage, WorkManager for background jobs, and Hilt for dependency injection. The app supports smart download, smart cleaning, compressed CBZ storage, and multi-source matching.
- 📚 Library: Favorites, search across sources, chapter list (detail/grid)
- 📖 Reader: Vertical scroll, zoomable pages, end card navigation, progress tracking
- ⬇️ Downloads: Manual & bulk downloads, WorkManager jobs, Wi‑Fi only option
- ⚙️ Settings: Smart download, smart cleaning, compression preferences
- 🔌 Sources: Modular scraping sources with stub/example implementation
- 🧠 Tracking: Read/current/new chapter state, reset for re-reads
- UI: Jetpack Compose (Material 3), Navigation Compose
- Logic: MVVM with ViewModels, UseCases, Repositories
- Persistence: Room for metadata, DataStore for preferences
- Background: WorkManager (downloads, cleanup, compression)
- Images: Coil for loading, CBZ archives with WebP/AVIF pages
- DI: Hilt
:app— Application, MainActivity, navigation host:core— Shared utilities and models:data— Room entities, DAOs, repositories:domain— Use cases:feature_manga— Manga list/detail screens:feature_reader— Reader screen:feature_downloads— Downloads UI & workers:feature_settings— Settings screen:sources— Source interface and implementations
See the Cursor Kickoff Prompt + Staged Plan doc for step-by-step guidance. Development proceeds incrementally (scaffold → models → sources → reader → downloads → settings → polish).
- Android Studio Giraffe+ (latest stable)
- Kotlin (latest stable)
- Min SDK 26+, Compile SDK latest stable
This project is intended as a generic reader framework. It does not ship with copyrighted content or unauthorized scrapers. Users may provide their own sources. Respect local laws and site Terms of Service.