GithubHelp home page GithubHelp logo

nahlasamir244 / taskhive Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 926 KB

Todo list App for Android platform Using MVVM single-activity architecture

Kotlin 100.00%
kotlin android databinding-android livedata viewmodel repository-pattern mvvm-architecture jetpack-navigation room-database single-activity-pattern

taskhive's Introduction

TaskHive

Task-Hive is Android To-do list app

The app works as follow :

  1. The main screen which displays the user saved tasks in room offline sqlite database as recyclerview with each task name and checkbox to represent task status (done or not). With floating action plus button which navigates to add task screen
  2. you can swipe to delete any task and then a snack bar will be displayed with undo option
  3. clicking on a task will open add/edit task screen on the edit mode with the task information , clicking the done fab will save your changes and update the task in the room database
  4. clicking the add fab will open the add/edit task screen on the add mode with empty cells to be filled with the task information , clicking the done fab will save your changes and add new task in the room database
  5. the main screen has options menu include different options for task sort and display like : hide completed , delete completed , sort by name or date and live search functionality

Architecture pattern:

MVVM single activity architecture with Helper class Resource to map viewmodel data into resource object holds both of data and ui state with repository pattern for data as a layer over different offline/online data sources

Libraries and dependencies:

  1. Constraint Layout for flexible relative positioning and sizing of views
  2. Support for different English/Arabic local
  3. Coroutines and flow for asynchronous operations (networking or data store operations)
  4. Both of coroutines channels and livedata for communication from viewmodel to views ex: navigation delegation cases
  5. Datastore for saving user settings and preferences
  6. Livedata to hold view data to be observed in the views
  7. view binding for binding viewmodel data to views
  8. Room offline database
  9. Navigation component for handling transitions between fragments
  10. Savedstatehandle module for holding state variables like search query
  11. Recyclerview with ListAdapter better choice for reactive data collections
  12. Dagger-Hilt for dependency injection
  13. Retrofit/okhttp for networking

Screenshots

Task list main screen Search tasks Sort tasks hide or delete completed delete confirmation dialog add new task edit task task updated snack bar task deleted snack bar

taskhive's People

Contributors

nahlasamir244 avatar

Stargazers

 avatar

Watchers

 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.