Latest Updates!!!!!: Test for App available to join:
Join on Android: link
Join on the Web: link
Link for a brief demo of this App: link
Summarize:
New Features Added:
- Implemented MVC struture in the app’s artitecture by seperating the app’s structure into UI Controller(Activity/Fragment), View model, repository and room database with DAO and entity.
- Created user entity that describes a SQL databse table which includes detailed data of the user’s to-do item.
- Created UserDao which maps SQL queries including update, delete, and insert items to functions
- Used room database to access and initialize SQL database when needed.
- Implemented repository which abstract data from SQL local database while providing a clear API for the rest of the app to access the data.
- Constructed ViewModel which holds communication between UI components and the repository. Used Live data and observer to notify changes when data is updated, deleted , and inserted.
- Implemented Recycler view and a ListAdapter to populate the screen with todo item while holds the connection with viewModel.
- Replaced Firebase real-time database with SQL local database accessed from a Room database
- Implemented data and time picker with a calender and animated clock shown up which allows the user to set up reminder time in a easy and clear way.
- Created Notifiction channel and set the content of the notification to the to-do item description.
- Integrated work manager to schedule works to send out notification to the user at their specified reminder time for each task.
- Modifying reminder work from the worker queue in the work manager when user delete and edit to-do item.
- Used item description as the tag for the work which allows the user to cancel and edit ther to-do task without worrying about reminder mulfunctioning but with certain trade offs.
- User has to use the same item title when editting the to-do item, else the reminder for previous item would not be deleted.
- Implemented Search View which enables users to search for a todo-item in the search box using the title of the to-do item.
- Integrated option menu for each created to-do item where users can view, delete or edit items.
- Created safe delete functions for users when deleting an item to make sure the user doesn’t click it by accident.