Dibuat oleh: Adrian Syah Abidin
Quran Plus adalah aplikasi Android offline-first berbasis Jetpack Compose, Clean Architecture, MVVM, Room, FTS5, Koin, ONNX Runtime, LiteRT-LM, SAF, WorkManager, dan sqlite-vec.
- Quran: 114 surah, 6.236 ayat, tajwid
AnnotatedString, waqaf, marker akhir ayat, pencarian FTS5, bookmark, dan reader responsive. - Word-by-word: 77.429 unit sumber untuk 6.236 ayat. Arabic, transliterasi Latin, dan makna English tersedia per kata dari Islamic.app Word API, yang mendokumentasikan sumber Quran.com API v4. Unit komposit seperti
إِلْ يَاسِينَtetap ditampilkan sebagai satu makna sumber; transliterasi tidak dipotong secara heuristik. Terjemahan Indonesia belum dibundel karena sumber berlisensinya belum diverifikasi. - Tahsin: 54 materi Room-backed tentang makharij, sifat huruf, hukum tajwid, mad, dan waqaf. Contoh ayat diperbarui oleh
scripts/refresh_tahsin.pydari teks Quran yang ada di database. - Hadist: APK hanya membawa schema dan metadata kosong; record tidak dibundel. Tombol
Download bundle Hadistmengambil arsip 9 koleksi Arab–Indonesia dari gadingnst/hadith-api, menyimpannya di SAF, mengimpor record nyata ke Room, dan memasukkannya ke corpus RAG. Section/listKutubus SittahdanHadis Lainnya, pencarian, serta importer JSON tetap tersedia; katalog kosong sampai user mengunduh bundle. - RAG: index sqlite-vec memakai embedding nyata untuk Quran, Hadist hasil bundle/impor, dan dokumen pengguna. Teks Arab,
translation_idIndonesia, dan English yang tersedia ikut di-embed. Chunking memakai 512 kata dengan overlap 50; retrieval default top-k 5. Index dibangun ulang setelah import/restore dan saat layar Tanya AI dibuka. - AI: jawaban hanya dibuat ketika model chatbot, embedder, corpus, dan index siap. Coverage index wajib memuat Quran serta setiap sumber Hadist/dokumen yang sudah tersimpan; jika belum, UI menampilkan
MODEL_UNAVAILABLE,EMBEDDER_UNAVAILABLE,INDEX_UNAVAILABLE, atauCORPUS_UNAVAILABLEsecara jujur.
Katalog memakai manifest minimal dengan URL HTTPS yang dipin, ukuran artifact, format/runtime, dan SHA-256. Checksum hanya dipakai untuk memastikan unduhan tidak korup atau tertukar.
- Qwen 2.5 1.5B Instruct LiteRT-LM — source, 1.567.364.648 bytes, SHA-256
98c289e1c43cc592ac535594d5de4bdde449e8dc012ac66909064b6880f8b717. - Alif Islamic v4 Base LiteRT-LM — source, 946.786.704 bytes, SHA-256
79deeca9f2120c08454ccb09f0399b42d4b3146e8d3fdc0bde4cfa2787f2bbaa. Model khusus tanya jawab Islami dan Fiqih berbasis task model LiteRT. - Gemma 4 E2B IT (instruction-tuned) LiteRT-LM — source, 2.588.147.712 bytes, SHA-256
181938105e0eefd105961417e8da75903eacda102c4fce9ce90f50b97139a63c. Penggunaan Gemma mengikuti Gemma Terms of Use. - all-MiniLM-L6-v2 ONNX untuk RAG — source, 23.026.053 bytes, 384 dimensi, SHA-256
4278337fd0ff3c68bfb6291042cad8ab363e1d9fbc43dcb499fe91c871902474.
Audio murottal diunduh per ayat dari katalog EveryAyah. Implementasi memakai folder qari yang sudah dipetakan ke URL HTTPS nyata, manifest 000_checksum.md5 dari sumber, HTTP Range untuk melanjutkan file .tmp, WorkManager dengan batas retry jaringan, lalu publish atomik setelah MD5 cocok. Dokumentasi Quran Foundation juga mendokumentasikan pola URL audio per ayat yang digunakan oleh layanan Quran.
- Qari tersedia: Mishary Alafasy, Mahmud Khalil Al-Husary, dan Abdurrahman As-Sudais.
- Audio tidak dibundel ke APK. Pilih surah pada More → Audio, tunggu status
Audio surah selesai diunduh, lalu buka ayat dan pilihPutar Audio Murottal. - File terverifikasi disimpan sebagai cache app-private di
filesDir/audio; cache ini dapat dihapus dari Audio Manager dan akan ikut terhapus saat aplikasi di-uninstall. Model AI dan dokumen RAG memiliki alur SAF terpisah agar tetap berada di folder pengguna. - EveryAyah menjadi sumber rekaman dan checksum; aplikasi tidak mengubah atau mengklaim lisensi rekaman tersebut. Hak penggunaan tetap mengikuti sumber dan qari.
Pilih folder melalui ACTION_OPEN_DOCUMENT_TREE pada Settings. Aplikasi membuat:
QuranPlus/
├── models/
├── rag/source/
│ └── hadith/
├── rag/index/
└── manifests/
Model, bundle Hadist, dan dokumen RAG yang sudah dipublish berada di folder milik pengguna, bukan hanya filesDir, sehingga tidak ikut terhapus ketika aplikasi di-uninstall. Setelah install ulang, pilih folder yang sama untuk relink dan memulihkan Hadist ke Room; izin URI harus diberikan ulang bila Android sudah mencabut grant aplikasi. Unduhan memakai file sementara, HTTP Range, dan WorkManager; model tetap diverifikasi SHA-256, sedangkan bundle Hadist divalidasi berdasarkan struktur buku JSON sumber sebelum diimpor.
Materi ringkas disusun untuk pemula dari sumber berikut:
Tidak ada file audio Tahsin yang diklaim tersedia. Tombol audio hanya aktif untuk audio Quran yang benar-benar tersedia dari AudioPlayerManager.
.\gradlew.bat :shared:compileDebugKotlinAndroid --no-daemon --console=plain
.\gradlew.bat :app:compileDebugKotlin --no-daemon --console=plain
.\gradlew.bat :app:testDebugUnitTest --no-daemon --console=plain
.\gradlew.bat :app:lintDebug --no-daemon --console=plain
.\gradlew.bat :app:assembleDebug --no-daemon --console=plain
.\gradlew.bat :app:connectedDebugAndroidTest --no-daemon --console=plainAcceptance Android terakhir dijalankan pada RRCN3008VYE / Samsung SM-G988B Android 13. Device QSWSEMRKNFZ9LJRC tidak terhubung dan tidak diklaim lulus. Model chatbot, model embedding, import corpus Hadist, indexing penuh, audio, dan seluruh kelas ukuran layar tetap membutuhkan asset/prasyarat nyata masing-masing.
Screenshot di bawah harus diregenerasi dari APK/commit terbaru; screenshot bukan bukti model atau corpus sudah siap.
| Quran home | Reader | Word-by-word |
|---|---|---|
![]() |
![]() |
![]() |
| Hadist | AI ModelGate |
|---|---|
![]() |
![]() |
Jangan commit docs/, reference project, credential, raw model weights, archive, atau database hasil import pengguna. Sebelum delivery, review staged diff, jalankan git diff --cached --check, secret scan, dan verifikasi SHA remote.
RTK, CAVEMAN, dan PONYTAIL adalah authoring guidance sesuai AGENTS.md, bukan dependency runtime.




