Skip to content

A simple alarm clock using Jetpack Compose, Room, Hilt

Notifications You must be signed in to change notification settings

ahudson20/whakaara

Repository files navigation

Whakaara - Android Alarm Clock App

This README provides an overview of the project, its features, and how to get started with the application.

Screenshots

Technologies Used

  • 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.

UI

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.

Modularization

The Whakaara app has been modularized.

modularization

Feedback and Support

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.

Contributing

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.

License

This project is licensed under the MIT License, allowing you to modify and distribute the application as per the terms of the license.