Skip to content

MVVM is a software architectural pattern that ease the separation of the development of the GUI be it via a XML code from the dev. of the back-end logic so that the view is not dependent on any specific model platform in this repo you will see the To-do Android app built by using this design pattern.

Notifications You must be signed in to change notification settings

pramit-marattha/TodoAndroidAppAssignment

Repository files navigation

TODO.



Build Status Coverage Status Badges Badges


Features

Register Sign-IN Adding ToooDooo Adding ToDo List

SpeechToText Adding Name Description Marking Complete/Incomplete Undo Todo

Downloads:

Platform Architecture Version Link
Android x64 1.o Get it on Google Play

About Installation (Installing and using the App)

1 Register/ Sign Up: : Fill the Required Information and Sign Up.

2 Login: : After Signing Up Login with the same credentials.

3 Todo List: : Click on the floating Add icon and create the Todo List

4 Todo Item: : After creating a Todo List ,Now click on the list and create your Todo Items.

5 Editing the Todo Items: : Click on the Todo Item and edit it.

6 Deleting the todo items and list:. : You can delete Todolist or a todoItem.

7 Sorting or filtering out: : Sort the completed and incomplete Todo items.

8 Searching Todo items : : Search the todo items.


Design Architecture

MODEL

  • adapter consists of recyclerviews adapters.
    -TaskListsAdapter
    -TaskItemsAdapter
  • InterfacePrompt consists of dialog prompts popup & Swipe to delete
    -AddNewTodoListDialog
    -SwipeLeftDelete
    -TodoItemsCallBack
    -TodoListCallbacks
    -SignoutDialog
  • Database consists of dao(class for room database) ,UserAuthentication,db..
    -DataAccessObject
    -AppDatabase
    -Dateconvert
    -EntireUserDatabase
    -RegisterUserAuthentication
    -TodoItems
    -TodoLists
    -TodoListsAndItems

VIEW

  • Activity consists of main activity
    -MainActivity
  • Fragments consists of all fragments
    -LoginFragments
    -RegisterFragments
    -SplashFragments
    -TodoListFormFragments
    -TodoListFragments

ViewModel

  • authHandleHomeViewModel
  • ParentExtendHomeViewModel
  • SignInViewModel
  • SignInviewModel
  • SignUpViewModel
  • TodoListViewModel
  • TodoItemViewModel

Development Stages

├── Master
|
|---->|─ InitialStep Branch
│     ├── Entity Branch
│     ├── DataAccessObject branch
│     ├── Database Branch
│     ├── TypeConverter Branch
│     ├── Thread runnable & executor Branch 
│     ├── PopulateList Branch
│     ├── DeleteList Branch
│     ├── UpdateList branch
│     ├── Live Data Branch
│     ├── MainActivityViewModel Branch
│     ├── AddEditTaskActivityViewModel Branch
│     ├── Repository Branch
│     ├── UserInterface Branch
│     ├── Updating The Icons Branch
│     ├── Updating the Task branch
│     ├── Undo Feature Branch
│     ├── SnackBarPopUPFeature after delete Branch
│     ├── New AppIcon Branch
│     ├── CustomDate Feature Brach
│     ├── SpeechToText Branch
│     ├── ConvertActivityToFragment Branch    
│     ├── Login/SignUp-toSaveTODO branch       
│     ├── RefinedUserInterface Branch
│     ├── NavigationComponent-viewPager Branch        
│<----├── WrappingInPackage-&-Apk-Export Branch        
│   
├── Final Phase(Apk Export)                       <-------- Current progress


Documentation (Model–view–viewmodel architecture in a nutshell)

Model–view–viewmodel (MVVM) is a software architectural pattern that facilitates the separation of the development of the graphical user interface (the view) be it via a markup language or GUI code from the development of the business logic or back-end logic (the model) so that the view is not dependent on any specific model platform. The view model of MVVM is a value converter,meaning the view model is responsible for exposing (converting) the data objects from the model in such a way that objects are easily managed and presented. In this respect, the view model is more model than view, and handles most if not all of the view's display logic.The view model may implement a mediator pattern, organizing access to the back-end logic around the set of use cases supported by the view.


References

Resources used to create this App

List of all modules , libraries & Repo-references to create this App:

  1. Room persistance library: [https://developer.android.com/topic/libraries/architecture/room]
  2. Paint class holds the style and color information about how to draw geometries, text and bitmaps.: [https://developer.android.com/reference/android/graphics/Paint]
  3. LayoutInflater: It Instantiates a layout XML file into its corresponding View objects[https://developer.android.com/reference/android/view/LayoutInflater]
  4. RxAndroid: Reactive Extensions for Android : [https://github.com/ReactiveX/RxAndroid]
  5. Appache commons hashcodebuilder: [https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/builder/HashCodeBuilder.html]
  6. Data Binding: It is a is a support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically. : [https://developer.android.com/topic/libraries/data-binding]
  7. Validation: [https://github.com/thyrlian/AwesomeValidation]
  8. Handling Lifecycles with Lifecycle-Aware Components: [https://developer.android.com/topic/libraries/architecture/lifecycle]
  9. Navigation Components: [https://developer.android.com/guide/navigation/navigation-getting-started]
  10. Material Components: [https://material.io/develop/android/docs/getting-started/]
  11. Material-components-android: [https://github.com/material-components/material-components-android]
  12. Referencing complex data using Room:[https://developer.android.com/training/data-storage/room/referencing-data]
  13. TypeConverter: [https://developer.android.com/reference/android/arch/persistence/room/TypeConverter]
  14. android.widget:[https://developer.android.com/reference/android/widget/package-summary]
  15. Uri :[https://developer.android.com/reference/android/net/Uri]
  16. Creating Task Room: [https://github.com/ebbi/TaskRoom]
  17. Creating Task Fragment:[https://github.com/ebbi/TaskFragment]
  18. TodoViewModel:[https://github.com/ebbi/TodoViewModel]
  19. Todo app Model View ViewModel architecture:[https://github.com/ebbi/TodoMVVM]

Detailed Documented process of each Branch

InitialPhase Branch Entity Branch
DataAcessObject Branch Database Branch
TypeConverter Branch ThreadRunnableExectors Branch
PopulatingList Branch DeletingTask Branch
UpdatingTask Branch LiveData Branch
MainActivityViewModel Branch AddEditTaskActivityViewModel Branch
Repository Branch DeletePopUp Branch
SppechToText Branch CustomDate Branch
XK8laCyYBo 9Wte9nXKLN
OraganizingFilesByPackage Branch Activity to Fragment & Nav. component
activityTofragment

About

MVVM is a software architectural pattern that ease the separation of the development of the GUI be it via a XML code from the dev. of the back-end logic so that the view is not dependent on any specific model platform in this repo you will see the To-do Android app built by using this design pattern.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages