# 💧🏃 Step & Drink Aplikasi Android untuk tracking langkah harian dan asupan air minum. [](https://kotlinlang.org) [](https://developer.android.com/jetpack/compose) [](https://developer.android.com) --- ## 📱 Tentang Step & Drink membantu kamu menjaga kesehatan dengan: - 🏃 **Step Counter** - Track langkah harian secara real-time - 💧 **Water Tracker** - Catat asupan air dengan mudah - ⏰ **Smart Reminder** - Notifikasi otomatis untuk minum teratur - 📊 **Progress Monitor** - Lihat pencapaian target harian --- ## ✨ Fitur Utama ### Step Counter - Real-time tracking dengan hardware sensor - Target harian (default 10,000 langkah) - History 7 hari - Start/Stop control ### Water Tracker Pilihan container cepat: - 🥛 Gelas Kecil (200ml) - 💧 Gelas Sedang (250ml) - 🌊 Gelas Besar (350ml) - 🚰 Botol Aqua (600ml) - 🫗 Tumbler (500ml) Plus input custom & history lengkap. ### Smart Reminder - Notifikasi otomatis setelah 3 jam tidak minum - Aktif jam 06:00 - 22:00 - Battery efficient - Bisa di-toggle ON/OFF ### Profile - Input nama & berat badan - Set target langkah & air harian - Data tersimpan lokal --- ## 🛠️ Teknologi **Core:** - Kotlin 100% - Jetpack Compose - Material Design 3 **Architecture:** - MVVM Pattern - Room Database - DataStore Preferences - WorkManager - Coroutines & Flow --- ## 🚀 Instalasi ```bash # Clone repository git clone https://github.com/HagaDalpintoGinting/Steps-Drink.git # Buka di Android Studio # Sync Gradle # Run aplikasi ``` **Requirements:** - Android Studio (latest) - Min SDK 26 (Android 8.0) - Device dengan step counter sensor (untuk fitur langkah) --- ## 📖 Penggunaan ### Setup 1. Buka aplikasi 2. Masuk ke Profile 3. Input data pribadi & set target ### Track Langkah 1. Buka halaman Steps 2. Tap tombol Start 3. Mulai berjalan ### Track Air 1. Buka halaman Water 2. Tap container (contoh: 🚰 600ml) 3. Atau klik "Input Custom" untuk jumlah lain ### Aktifkan Reminder 1. Buka halaman Water 2. Toggle "Pengingat Minum" ke ON 3. Izinkan permission notifikasi --- ## ⚙️ Konfigurasi Ubah settings reminder di `WaterReminderManager.kt`: ```kotlin const val CHECK_INTERVAL_MINUTES = 30L // Interval cek const val REMIND_AFTER_HOURS = 3 // Reminder setelah X jam const val ACTIVE_START_HOUR = 6 // Jam mulai const val ACTIVE_END_HOUR = 22 // Jam selesai ``` --- ## 📝 Catatan **Tested on:** Samsung Galaxy A35 5G (Android 14) **Limitations:** - Step counter butuh device fisik (emulator tidak support) - Data tersimpan lokal saja - Reminder bergantung pada battery optimization device **Troubleshooting:** - Steps tidak terhitung? Pastikan permission ACTIVITY_RECOGNITION diizinkan - Reminder tidak muncul? Check permission POST_NOTIFICATIONS dan pastikan jam aktif --- ## 🎓 Project Tugas Akhir Pemrograman Bergerak dengan requirement: - ✅ Multi-screen - ✅ Hardware sensor - ✅ Local database - ✅ Kotlin & Jetpack Compose --- ## 👨💻 Developer **Haga Dalpinto Ginting** GitHub: [@HagaDalpintoGinting](https://github.com/HagaDalpintoGinting) --- ## 📄 License MIT License © 2025 ---