- Set alarms with a specific time and date
- Edit and delete existing alarms
- Receive notifications when an alarm goes off
- dismiss alarms from the notification
- Room: A persistence library that provides an abstraction layer over SQLite to allow for more robust database access.
- Coroutine: A concurrency design pattern that allows for asynchronous programming in a more readable and maintainable way.
- Alarm Manager: A system service that allows you to schedule your application to be run at some point in the future.
- View Binding: A feature that allows you to more easily write code that interacts with views.
- MVVM Architecture: A design pattern that separates the user interface from the business logic and data access layers.