Smart Alarm - Aplikasi Alarm Android Modern Aplikasi alarm Android yang canggih dengan fitur-fitur lanjutan seperti shake to stop, gradual volume, statistik, dan preset alarm. 🎯 Fitur Utama ✨ Fitur Alarm
Multiple Alarms - Buat alarm sebanyak yang kamu mau Repeat Schedule - Atur alarm berulang per hari (Senin-Minggu) Custom Labels - Beri nama setiap alarm Snooze Function - Tunda alarm dengan mudah
🤚 Shake to Stop
Intelligent Shake Detection - Gunakan accelerometer untuk deteksi goyangan Adjustable Intensity - Atur tingkat kesulitan (1-5) Visual Feedback - Progress bar saat shake
📈 Gradual Mode
Progressive Volume - Volume meningkat bertahap Customizable Duration - Atur durasi peningkatan volume Smooth Wake Up - Bangun dengan lembut
📊 Statistics
Alarm History - Rekam semua alarm yang berbunyi Stop Method Tracking - Lihat bagaimana alarm dimatikan Snooze Count - Hitung berapa kali snooze Average Duration - Waktu rata-rata alarm berbunyi
🎨 Preset Alarms
6 Preset Bawaan:
Morning (06:30) - Weekdays Work Start (08:00) - Weekdays Lunch (12:00) - Weekdays Afternoon Nap (14:00) Evening (18:00) - Weekdays Night (22:00)
🏗️ Arsitektur Proyek ini menggunakan Clean Architecture dengan pola MVVM: ├── data/ # Data layer │ ├── db/ # Room Database │ ├── datastore/ # DataStore preferences │ ├── model/ # Data models │ └── repository/ # Repository pattern ├── domain/ # Business logic │ ├── usecase/ # Use cases │ └── mapper/ # Data mappers ├── service/ # Background services ├── ui/ # Presentation layer │ ├── alarm/ # Alarm screens │ ├── statistics/ # Statistics screen │ └── components/ # Reusable components ├── viewmodel/ # ViewModels └── utils/ # Utility classes 🛠️ Tech Stack
Language: Kotlin Architecture: MVVM + Clean Architecture Database: Room Preferences: DataStore UI: Material Design 3 Navigation: Navigation Component Concurrency: Coroutines + Flow DI: Manual (bisa upgrade ke Hilt/Koin) Charts: MPAndroidChart
📦 Dependencies gradle// Core implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.appcompat:appcompat:1.6.1") implementation("com.google.android.material:material:1.11.0")
// Lifecycle & ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0") implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.7.0")
// Navigation implementation("androidx.navigation:navigation-fragment-ktx:2.7.6")
// Room Database implementation("androidx.room:room-runtime:2.6.1") kapt("androidx.room:room-compiler:2.6.1")
// DataStore implementation("androidx.datastore:datastore-preferences:1.0.0")
// Charts implementation("com.github.PhilJay:MPAndroidChart:v3.1.0") 🚀 Instalasi
- Clone Repository bashgit clone https://gitlab.com/username/smart-alarm.git cd smart-alarm
- Open di Android Studio
File → Open → Pilih folder proyek Tunggu Gradle sync selesai
- Build & Run
Klik tombol Run (▶️) Pilih device/emulator Aplikasi akan terinstall otomatis
⚙️ Konfigurasi Minimum Requirements
Android Version: Android 8.0 (API 26) Target Version: Android 14 (API 34) Kotlin: 1.9.0+ Gradle: 8.0+
Permissions Aplikasi memerlukan permission berikut:
POST_NOTIFICATIONS - Untuk notifikasi alarm SCHEDULE_EXACT_ALARM - Untuk alarm tepat waktu VIBRATE - Untuk getaran WAKE_LOCK - Untuk membangunkan device RECEIVE_BOOT_COMPLETED - Untuk reschedule setelah reboot
Instrumentation Tests
./gradlew connectedAndroidTest
📄 License This project is licensed under the MIT License - see the LICENSE file for details.
👨💻 Author
Lalu Muhammad Anggan Subhan (202310715277) Muhammad Rafly Al-Fathir (202310715043) Rafi Fattan Fitriardi (202310715002)
🙏 Acknowledgments
Material Design Icons MPAndroidChart library Android Jetpack libraries Stack Overflow community