SmartAlarm/README.md
RafiFattan23 ee76fb5050 polish
2026-01-09 09:38:32 +07:00

144 lines
7.9 KiB
Markdown

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
1. Clone Repository
bashgit clone https://gitlab.com/username/smart-alarm.git
cd smart-alarm
2. Open di Android Studio
File → Open → Pilih folder proyek
Tunggu Gradle sync selesai
3. 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