KomiKu adalah aplikasi pembaca komik (Manga, Manhwa, Manhua, Webtoon) berbasis Android yang dirancang dengan antarmuka modern menggunakan Jetpack Compose dan Material 3. Aplikasi ini memungkinkan pengguna untuk menjelajahi koleksi komik, melihat detail komik, dan membaca chapter dalam format PDF dengan pengalaman membaca yang mulus.
Dibangun sebagai tugas kuliah Pemrograman Aplikasi Mobile oleh:
- Mohamad Dimas Arjuna — 2403040058
- Iqbal Dwi Ganjar Saefullah — 2403040029
- Home Screen: Menampilkan daftar komik yang tersedia dengan tampilan grid/card yang menarik.
- Detail Komik: Melihat informasi lengkap komik beserta daftar chapter yang tersedia.
- PDF Chapter Reader: Membaca chapter komik dalam format PDF dengan dukungan scroll vertikal dan zoom menggunakan library Bouquet.
- Modern UI: Antarmuka yang dibangun sepenuhnya dengan Jetpack Compose dan mengikuti Material Design 3.
| Layer | Teknologi |
|---|---|
| Bahasa | Kotlin |
| UI Toolkit | Jetpack Compose |
| Design System | Material 3 |
| Networking | Retrofit + Gson Converter |
| Image Loading | Coil |
| PDF Viewer | Bouquet (io.github.grizzi91:bouquet) |
| Dependency Injection | Hilt (Dagger) |
| Navigation | Navigation Compose |
| Concurrency | Kotlin Coroutines & StateFlow |
Note
Screenshot akan segera diperbarui.
| Home Screen | Detail Comic | PDF Reader |
|---|---|---|
| Daftar komik | Info & daftar chapter | Baca chapter (PDF) |
com.iqbal.komiku
├── data/
│ ├── model/ # Data classes (Komik, KomikDetail, Chapter, ChapterDetail)
│ ├── remote/ # Retrofit API service (KomikuApiService)
│ └── repository/ # Repository untuk akses data (KomikuRepository)
├── di/ # Hilt dependency injection modules (AppModule)
├── ui/
│ ├── components/ # Reusable composables (KomikCard, dll.)
│ ├── navigation/ # Navigation graph setup (KomikuNavigation)
│ ├── screens/
│ │ ├── home/ # HomeScreen & HomeViewModel
│ │ ├── detail/ # DetailScreen & DetailViewModel
│ │ └── reader/ # ReaderScreen & ReaderViewModel (PDF viewer)
│ └── theme/ # Material 3 theme (Color, Theme, Type)
├── KomikuApp.kt # Application class (Hilt entry point)
└── MainActivity.kt # Single Activity host
Aplikasi ini menggunakan arsitektur MVVM (Model-View-ViewModel) dengan pola Repository:
- Data Layer —
model/,remote/,repository/: Mengelola data dari API menggunakan Retrofit. - Presentation Layer —
screens/,components/: UI menggunakan Jetpack Compose, dengan state dikelola oleh ViewModel melaluiStateFlow. - DI Layer —
di/: Menyediakan dependensi menggunakan Hilt.
- User memilih chapter dari halaman detail komik.
ReaderViewModelmemanggil repository untuk mengambilChapterDetail(berisipdfUrl).ReaderScreenmenggunakanVerticalPDFReaderdari library Bouquet untuk merender file PDF dari URL tersebut.
- Clone Repository
git clone https://github.com/username/komiku.git
- Buka di Android Studio
- Pastikan menggunakan versi Android Studio terbaru (Iguana/Jellyfish ke atas).
- Gunakan JDK 17 atau yang lebih baru.
- Sync Gradle
- Tunggu hingga proses sinkronisasi dependensi selesai.
- Jalankan Aplikasi
- Klik tombol Run dan pilih Emulator atau Perangkat Fisik (Min SDK 24 / Android 7.0).
Aplikasi ini menggunakan REST API untuk mendapatkan data komik dan chapter. Endpoint utama:
| Method | Endpoint | Deskripsi |
|---|---|---|
GET |
/api/komik |
Mendapatkan daftar komik |
GET |
/api/komik/{id} |
Mendapatkan detail komik & daftar chapter |
GET |
/api/chapter/detail/{id} |
Mendapatkan detail chapter (termasuk pdfUrl) |
Project ini dibangun untuk tujuan edukasi. Jika Anda ingin berkontribusi:
- Fork project ini.
- Buat feature branch (
git checkout -b feature/FiturBaru). - Commit perubahan Anda (
git commit -m 'Menambah Fitur Baru'). - Push ke branch (
git push origin feature/FiturBaru). - Buat Pull Request.
Didistribusikan di bawah lisensi MIT. Lihat LICENSE untuk informasi lebih lanjut.
Dibuat dengan ❤️ oleh Kelompok 1 - Pemrograman Aplikasi Mobile.