Skip to content

Demo app demonstrating how to create and manage notifications locally using a combination of Jetpacks Worker Manager and Broadcast Receiver.

License

Notifications You must be signed in to change notification settings

ayiaware/WorkerNotification

Repository files navigation

Worker Notification

Demo app demonstrating how to create and manage notifications locally using a combination of Jetpacks Worker Manager and Broadcast Receiver. It Also demonstrates modern Android development with Coroutines, LiveData, Jetpack (Room, ViewModel, Navigation), and Material Design based on MVVM architecture.

Functionalities

  • Add To-do
  • Delete To-do
  • Edit To-do
  • On/Off reminder notification
  • Search To-do list

Other topics covered in this project

  • How to implement multi-select using action mode
  • Custom check box (circular check box)
  • Data binding
  • Two-way binding
  • Form validation

Tech stack & Open-source libraries

  • Android Studio Arctic Fox IDE
  • Minimum SDK level 21
  • Manual Dependency Injection
  • Kotlin based, Coroutines + Livedata for asynchronous.
  • Jetpack
    • Lifecycle - Observe Android lifecycles and handle UI states upon the lifecycle changes.
    • ViewModel - Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
    • DataBinding - Binds UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
    • Room Persistence - Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
    • Navigation Component - Navigation component helps you implement navigation, ensuring a consistent and predictable user experience by adhering to an established set of principles
  • Architecture
    • MVVM Architecture (View - DataBinding - ViewModel - Model)
    • Repository Pattern
  • Timber - A logger with a small, extensible API.

license

Find this repository useful? leave a⭐ for this repository follow me on GitHub 🤩