This is a sample Notes Application which has features like add a note , delete , search etc . Done with latest concepts like Rxjava ...
The following are the things done in the Notes App.
- Used Latest Android SDK 25 ( which this app is currently targeting as well ) and all build tools etc using are updated ones.
- Using Java8 with jackoptions which will enable Lambda expressions, method references etc.
- Used RxJava, RxAndroid extensively to make Database calls in Background and call backs in the Main thread with unsubscription in the onDestroy.
- Used RxBinding for binding view clicks, editText text changes event etc with throttleFirst and debounce , so that so avoid the multiple clicks /multiple events getting fired in a span of a second.
- Using Design for Floating ActionButton.
- Using PublishSubjects instead of interfaces for better code readability and handling of subscriptions.
- Used MVP pattern in the code , to segregated UI part from the logic with Presenters.
-
Added Search Features to search items.
-
Added Add item, Delete item ( in two places Listing Page long press and Details page menu click ), update item.
-
Optimized on Item addition/deleting/modification , Only updating that item in Recyclerview. Also Optimizing on Database calls upon addition/deleting/modification by passing the respective item and avoiding the extra Database call.
-
Saving list in onSaveInstanceState so that on mobile flip again Database call can be avoided.
-
All Database calls in Background thread using RxJava to prevent UI lags.
-
Using RxBinding for view clicks, editText text changes event etc with throttleFirst and debounce , so that so avoid the multiple clicks /multiple events getting fired in a span of a second.
-
Auto Save option in Details page. So on back click will also save the item.
-
Title of notes is picked from the first non empty line entered in description by User ( provided if title is not entered by user).
-
Showing Modified Time and Time difference information in the Notes based on timezone.
-
In Detailspage double tap to edit ( also user can click on edit button below)
-
In Listing page showing description with empty lines removed. So that user can see lot of information in notes.
-
Every time ( even after adding/deletion/modification) the items in listing page are always sorted by time in descending order.
-
Delete confirmation Dialog for confirming with the user to delete the item.
-
Doing only Soft delete of the items ( isDeleted = 1 ). So that we can show these list of items in new Trash Page.
-
Done other features like showing progressbar while loading, publishsubjects instead of interfaces etc.
- Added Floating Action Button for Add.
- Added Ripple Effects for clicks and long press for all buttons and listing page notes item.
- Using custom EditText with lines drawn in the Details page.