Giter Site home page Giter Site logo

pramit-marattha / todoandroidappassignment Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 718 KB

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.

Java 100.00%
android mvvm-architecture mvvm playstore todoapp to-do-list

todoandroidappassignment's Introduction

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

todoandroidappassignment's People

Contributors

pramit-marattha avatar

Watchers

Binay shah avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.