144 lines
7.9 KiB
Markdown
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 |