This README provides an overview of the project, its features, and how to get started with the application.
- Jetpack Libraries:
- Jetpack Compose: Jetpack Compose is utilized to create a modern and responsive user interface, simplifying UI development.
- ViewModel: Manages UI-related data and is lifecycle-aware, ensuring data survival through configuration changes.
- Navigation: Facilitates screen navigation, complemented by Hilt Navigation Compose
- Room: Constructs a database with an SQLite abstraction layer, providing a seamless storage solution for alarms and their configurations.
- Hilt: Hilt is employed for dependency injection, facilitating modularization and improving code maintainability.
- Architecture:
- MVVM Architecture (View - ViewModel - Model): Facilitates separation of concerns and promotes maintainability.
- Repository Pattern: Acts as a mediator between different data sources and the application's business logic.
- ksp: Kotlin Symbol Processing API for code generation and analysis.
- Turbine: A small testing library for kotlinx.coroutines Flow.
- gson: used to convert Java Objects into their JSON representation.
- kover: provides test coverage of Kotlin code compiled for JVM and Android platforms.
The app was designed using Material 3 guidelines.
The Screens and UI elements are built entirely using Jetpack Compose.
The app has two themes:
- Dynamic color - uses colors based on the user's current color theme
- Default theme - uses predefined colors when dynamic color is not supported
Each theme also supports dark mode, as well as high and medium contrast.
The Whakaara app has been modularized.
If you encounter any issues with Whakaara or have any feedback, please feel free to open an issue on the GitHub repository. I appreciate your support and contributions to making Whakaara even better.
I welcome contributions from the community to enhance Whakaara further. If you would like to contribute, please follow these guidelines:
- Fork the repository.
- Create your feature branch (git checkout -b feature/YourFeature).
- Commit your changes (git commit -am 'Add some feature').
- Push to the branch (git push origin feature/YourFeature).
- Create a new Pull Request.
This project is licensed under the MIT License, allowing you to modify and distribute the application as per the terms of the license.