Quench is a water reminder App designed with one primary goal in mind, to help users stay adequately hydrated throughout their day. it is created using the cutting-edge Jetpack compose and leveraging a range of modern Android libraries, this app serves as a simple yet effective tool to promote healthy hydration habits.
Currently available on the Play Store
The app is built with the Model-View-ViewModel (MVVM) as its structural design pattern that separates objects into three distinct groups:
- Models hold application data. They’re usually structs or simple classes.
- Views display visual elements and controls on the screen. They’re typically subclasses of UIView.
- View models transform model information into values that can be displayed on a view. They’re usually classes, so they can be passed around as references.
This app is a work in progress and is currently in heavy development. Bugs may be present and any feedback or bug reports are welcome.
- Kotlin - Kotlin is a programming language that can run on JVM. Google has announced Kotlin as one of its officially supported programming languages in Android Studio; and the Android community is migrating at a pace from Java to Kotlin
- Android KTX - Provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
- AndroidX - Major improvement to the original Android Support Library, which is no longer maintained.
- Lifecycle - Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
- Viewmodel -The ViewModel class is designed to store and manage UI-related data in a lifecycle conscious way
- LiveData - A lifecycle-aware data holder with the observer pattern
- Room Database- The Room persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.
- Kotlin Coroutines - A concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
- Hilt - A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project
- Navigation Components - Helps you implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer.
- Material Libarary - Modular and customizable Material Design UI components for Android
- Kotlin Flows - a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value.
- RaamCosta Navigation- A KSP library that processes annotations and generates code that uses Official Jetpack Compose Navigation under the hood. It hides the complex, non-type-safe and boilerplate code you would have to write otherwise.
- Alarm Manager - These allow you to schedule your application to be running at some point in the future.
- Work Manager - WorkManager is the primary recommended API for background processing.
- Timber - A logger with a small, extensible API that provides utility on top of Android's normal Log class.
- Notifications- A notification is a message that Android displays outside your app's UI to provide the user with reminders, communication from other people, or other timely information from your app.
- GitHub Actions-GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub. Make code reviews, branch management, and issue triaging work the way you want.
- Android device or emulator
- Android Studio
In order to get the app running yourself, you need to:
- Clone this project
- Import the project into Android Studio
- Connect your Android device with USB or just start your emulator
- After the project has finished setting up it stuffs, click the run button
- Found this project useful ❤️? Support by clicking the ⭐️ button on the upper right of this page. ✌️
- Notice anything else missing? File an issue
- Feel free to contribute in any way to the project from typos in docs to code review are all welcome.