Tautan asset tetap menggunakan path v1.0.0/app-release.apk sesuai kontrak distribusi. APK yang dibangun dari source saat ini memiliki metadata aplikasi 2.0.0 (versionCode 2) dan ditandatangani dengan debug keystore karena repository tidak menyimpan production keystore; gunakan sebagai artifact validasi internal/device, bukan klaim signed production release.
Seluruh antarmuka aplikasi dibangun menggunakan Jetpack Compose Material 3 dan Jetpack Glance AppWidgets, dengan kalkulasi waktu sholat dan observasi astronomi yang dihitung secara real-time langsung di perangkat (100% Offline-First).
| Beranda & Countdown | Jadwal Sholat Bulanan | Kompas Kiblat Presisi | Pengaturan & Kalibrasi |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Dashboard Astronomi | Detail Matahari & Twilight | Detail Bulan & Fase 30 Hari | Peta Bintang 2D Polar | Kalender Hijriah & Masehi |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
| Widget Waktu Sholat & Countdown 3Γ4 | Widget Observasi Astronomi (Sun & Moon) |
|---|---|
![]() |
![]() |
AdzanPlus adalah aplikasi jadwal sholat, pengingat adzan, dan suite observasi astronomi modern berbasis Android yang mengedepankan privasi pengguna, performa tinggi, efisiensi baterai, dan kemampuan 100% Offline-First.
Berbeda dengan aplikasi konvensional yang bergantung pada REST API pihak ketiga, AdzanPlus menghitung seluruh waktu sholat dan posisi benda langit langsung di perangkat menggunakan dua modul Kotlin Multiplatform (KMP) murni (:core-prayer dan :core-astronomy), sehingga tetap akurat tanpa memerlukan koneksi internet aktif.
-
π Kalkulasi Astronomis On-Device (100% Offline):
- Mendukung standar hisab Kemenag RI (Kementerian Agama Republik Indonesia) dengan koreksi ihtiyath (+2 menit).
- Pilihan metode hisab internasional lengkap: Muslim World League (MWL), Umm Al-Qura (Makkah), Egyptian General Authority of Survey, Karachi, ISNA, MUIS (Singapura), dan Custom Method.
- Pilihan Madhab (Syafi'i/Hambali/Maliki vs Hanafi) dan aturan lintang tinggi (High Latitude Rules).
- Koreksi menit per-waktu sholat (Per-Prayer Minute Adjustments) untuk kalibrasi masjid lokal.
- Waktu sholat komprehensif: Subuh, Terbit (Syuruq), Dzuhur, Ashar, Maghrib, Isya, Imsak, Tengah Malam (Midnight), dan Sepertiga Malam Terakhir (Tahajjud).
-
π Suite Observasi Astronomi & Bintang (
:core-astronomy):- Dashboard Astronomi: Indikator fase matahari real-time dengan animasi pulsa dinamis, kartu rangkuman matahari & bulan, dan timeline pita senja 24 jam.
- Detail Matahari & Fotografi: Visualisasi Canvas busur elevasi matahari, perhitungan otomatis Golden Hour (-4Β° s/d +6Β°) dan Blue Hour (-6Β° s/d -4Β°) pagi & sore, serta jadwal senja sipil, nautikal, dan astronomis.
- Detail Bulan & Fase 30 Hari: Ilustrasi Canvas fase bulan resolusi tinggi, waktu terbit/transit/terbenam, jarak orbit bumi (apogee/perigee), dan mini kalender fase interaktif 30 hari.
- Peta Bintang 2D Polar (Star Map): Proyeksi langit kutub berpusat Zenith dengan interaksi cubit-zoom (0.5x - 5.0x), pan geser, katalog 500 bintang Hipparcos (mag β€ 4.5), 40 garis rasi bintang IAU, marker matahari/bulan, fitur ketuk-bintang untuk melihat info magnitudo/koordinat, dan slider simulasi waktu Β±12 jam.
- Kalender Hijriah & Masehi: Grid kalender dual Masehi-Hijriah berbasis hisab Umm al-Qura dengan 5 dot waktu sholat harian, highlight hari ini, penanda golden hour, dan bottom sheet rincian astronomis.
-
β° Sistem Alarm & Notifikasi Presisi (Doze-Resistant):
- 3 Mode Notifikasi Fleksibel per Waktu Sholat: Pilihan kustomisasi dropdown lengkap antara Suara Adzan Penuh (audio autentik / file kustom), Bip Notifikasi (nada dering sistem ringkas), atau Hanya Notifikasi / Tanpa Suara (banner notifikasi senyap tanpa pemutaran suara).
- Kustomisasi Getar (Haptic Feedback): Opsi toggle getar mandiri per waktu sholat untuk pengingat yang tetap terasa tanpa mengganggu.
- Memanfaatkan
AlarmManager.setExactAndAllowWhileIdle()untuk ketepatan waktu alarm bahkan saat perangkat dalam mode Doze. - Pemulihan otomatis setelah reboot (
BootReceiver) dan deteksi pergantian zona waktu (TimeChangeReceiver). - Penjadwalan alarm benda langit (
CelestialAlarmReceiver) untuk Golden Hour pagi dan Moonrise. - Rekonsiliasi harian mandiri via
WorkManager. - Audio playback adzan autentik (Makkah, Madinah, Al-Aqsa, Mesir, Subuh) dengan fitur pratinjau suara langsung di Pengaturan.
-
π± Real-Time Home Screen Widgets (Responsive & Jetpack Glance):
- Prayer Timetable Widget (Muslim Pro Style): Menampilkan hitung mundur waktu sholat berikutnya secara live menggunakan
RemoteViews.Chronometer, tanggal Hijriah aktual, serta timetable 8 waktu sholat (Imsak s/d Isya) dengan status centang (β/β) dan highlight sholat aktif. - Astronomy Suite Widget: Widget observasi lengkap yang mengombinasikan fase surya, window Golden Hour & Blue Hour pagi & sore, fase bulan resolusi tinggi, persentase iluminasi, serta jadwal Moonrise/Moonset.
- Pasang widget langsung 1-klik dari menu Pengaturan (In-App Pin Widget) atau menu launcher.
- Prayer Timetable Widget (Muslim Pro Style): Menampilkan hitung mundur waktu sholat berikutnya secara live menggunakan
-
π§ Kompas Kiblat Presisi & Haptic Heartbeat:
- Perhitungan arah Ka'bah (21.4225Β° N, 39.8262Β° E) menggunakan algoritma Great-Circle Bearing.
- Integrasi sensor geomagnetik dan akselerometer perangkat dengan low-pass filter untuk visualisasi kompas yang halus.
- Getaran hardware haptic feedback otomatis dan heartbeat berkala saat perangkat mengarah tepat ke Ka'bah (Β±2Β°).
- Informasi jarak langsung ke Ka'bah dalam kilometer.
-
π¨ Modern Islamic Elegance (Material 3):
- Palet warna eksklusif Deep Emerald & Warm Gold untuk sholat dan Deep Night Sky & Celestial Amber untuk astronomi.
- Kontras tinggi dan keterbacaan sempurna di Mode Terang (Light Mode) maupun Mode Gelap (Dark Mode).
- Tata letak responsif (Adaptive Layouts) yang dioptimalkan untuk smartphone compact, perangkat lipat (foldables), dan tablet.
AdzanPlus dibangun dengan prinsip Clean Architecture, SOLID, DRY, dan Unidirectional Data Flow (UDF):
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β :app (Android) β
β ββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββ β
β β Jetpack Compose M3 β β Jetpack Glance AppWidgets β β
β β (Prayer & Astronomy UI) β β (Prayer, Moon, and Sun Widgets) β β
β βββββββββββββββ¬βββββββββββββββ ββββββββββββββββββ¬ββββββββββββββββββ β
β β β β
β βΌ βΌ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β ViewModels & UI State Holders β β
β βββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Data Layer (Room DB, DataStore, AlarmManager, WorkManager, Exo) β β
β βββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββ β
ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββ
β β
βΌ βΌ
ββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββ
β :core-prayer (KMP Shared) β β :core-astronomy (KMP Shared) β
β ββββββββββββββββββββββββββββββ β β βββββββββββββββββββββββββββββββββ β
β β Pure Kotlin Prayer Times β β β β Pure Kotlin Sun, Moon, Star β β
β β Astronomical Calculations β β β β Map (500 Stars), & Hijri Math β β
β ββββββββββββββββββββββββββββββ β β βββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββ
- Language: Kotlin 2.0+ & Kotlin Multiplatform (KMP)
- UI Framework: Jetpack Compose, Material 3, Compose Navigation
- Widget: Jetpack Compose Glance + RemoteViews Chronometer
- Asynchronous: Kotlin Coroutines & Reactive StateFlow / SharedFlow
- Dependency Injection: Dagger Hilt
- Storage & Caching: Jetpack Room Database & Jetpack DataStore Preferences
- System Background Services: Android
AlarmManager,BroadcastReceiver,WorkManager - Audio & Media: AndroidX Media3 ExoPlayer
AdzanPlus/
βββ app/ # Modul Android Application
β βββ src/main/
β β βββ java/com/adzannotif/
β β β βββ data/ # Repositories, Room DAOs, DataStore Preferences
β β β βββ di/ # Hilt DI Dependency Injection Modules
β β β βββ domain/ # UseCases & Business Contracts
β β β βββ platform/ # AlarmManager, Receivers, Audio & Notifications
β β β βββ presentation/ # Compose Screens (Home, Schedule, Astronomy, Qibla, Settings)
β β β β βββ astronomy/ # Astronomy Dashboard, Sun, Moon, Star Map, Hijri Calendar
β β β β βββ home/ # Home screen & countdown ticker
β β β β βββ qibla/ # Qibla compass, sensor fusion & haptics
β β β β βββ schedule/ # Monthly schedule & prayer time details
β β β β βββ settings/ # Prayer adjustments & audio picker
β β β βββ theme/ # Material 3 Theme, Typography, Night Sky Colors
β β β βββ widget/ # Jetpack Compose Glance & AppWidget Providers
β β βββ assets/ # Bundled star catalog & constellation JSON
β β βββ res/ # Vector drawables, Authentic Audio assets, Layouts
β βββ build.gradle.kts
β
βββ core-prayer/ # Modul KMP Pure Prayer Calculation Engine (Zero android.*)
β βββ src/
β β βββ commonMain/ # Algoritma Astronomi, Solar Times, Qibla (Pure Kotlin)
β β βββ commonTest/ # Unit Tests (>95% coverage kalkulasi waktu sholat)
β βββ build.gradle.kts
β
βββ core-astronomy/ # Modul KMP Pure Celestial Engine (Zero android.*)
β βββ src/
β β βββ commonMain/ # SunMath, MoonMath, StarMath, HijriCalendar, GoldenHour
β β β βββ resources/ # star_catalog.json (500 stars), constellation_lines.json
β β βββ commonTest/ # Unit Tests (>90% coverage hisab astronomi & bintang)
β βββ build.gradle.kts
β
βββ docs/ # Dokumentasi teknis & screenshots aplikasi
β βββ screenshots/ # Tangkapan layar beresolusi tinggi dari perangkat
βββ .github/ # GitHub Actions CI/CD workflows
βββ .gitignore # DevSecOps Anti-Leakage rules
βββ .gitattributes # Line normalization & binary assets handling
βββ DESIGN.md # Design System & UI Specification
βββ PRD.md # Product Requirements Document
βββ AGENTS.md # Multi-Agent Operating Model
βββ settings.gradle.kts
- Android Studio: Ladybug (2024.2.1) / Meerkat atau versi lebih baru.
- JDK: Java Development Kit 17 atau 21.
- Android SDK: Min SDK
API 24(Android 7.0), Target SDKAPI 35(Android 15).
-
Clone Repositori:
git clone https://github.com/Adrian463588/AdzanPlus.git cd AdzanPlus -
Buka di Android Studio:
- Buka Android Studio ->
Open Project-> Pilih direktoriAdzanPlus. - Biarkan Gradle melakukan sync dependensi secara otomatis.
- Buka Android Studio ->
-
Build & Jalankan via Terminal / CLI:
# Menjalankan unit test modul sholat ./gradlew :core-prayer:test # Menjalankan unit test modul astronomi ./gradlew :core-astronomy:test # Menjalankan seluruh test suite aplikasi ./gradlew testDebugUnitTest # Build APK Debug ./gradlew assembleDebug # Install langsung ke perangkat/emulator yang terhubung adb install -r app/build/outputs/apk/debug/app-debug.apk
Proyek ini menerapkan standar keamanan DevSecOps dan Anti-Credential Leakage:
- Zero Secret & Anti-Leakage Policy: File konfigurasi lokal (
local.properties,key.properties,secrets.properties), arsip keystore, dan modul referensi eksternal (ReferenceProjects/) dikecualikan dari version control publik melalui.gitignore.PRD.md,AGENTS.md,DESIGN.md, dan dokumentasidocs/tetap dipelihara sebagai kontrak dan sumber referensi proyek. - Keystore Protection: Kunci tanda tangan aplikasi (
*.jks,*.keystore,*.p12) tidak pernah disimpan di dalam repositori publik. - Pure Domain Isolation: Modul perhitungan waktu sholat (
:core-prayer) dan astronomi (:core-astronomy) diisolasi penuh dari dependensi platform untuk menjamin keaslian dan portabilitas hisab. - Privacy-First: Aplikasi tidak memerlukan izin akses internet wajib untuk menghitung waktu sholat dan benda langit.
Dikonsep, dirancang, dan dikembangkan dengan dedikasi oleh:
Adrian Syah Abidin
Lead Software Engineer & Android Specialist
GitHub: @Adrian463588
Proyek ini dilisensikan di bawah MIT License β Bebas digunakan, dipelajari, dan dikembangkan untuk kebaikan umat.










