Yashgugaliya / TodoApp

TodoApp MVVM Architecture App written in Kotlin.(ViewModel, ROOM, Livedata, Coroutines)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TodoApp πŸ“ƒ

TodoApp is a sample Todo Android application πŸ“± built to demonstrate use of Modern Android development tools. Dedicated to all Android Developers with ❀️.

You can Install and test latest TodoApp from below πŸ‘‡

ToDoApp

About

It simply stores ToDo list data in persistence storage (i.e. SQLite Database).

  • This makes it offline capable πŸ˜ƒ.
  • Clean and Simple Material UI.
  • It supports dark theme too πŸŒ—.

Dummy API is used in this app. JSON response is statically hosted here.

Built With πŸ› 

  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • LiveData - Data objects that notify views when the underlying database changes.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
    • Room - SQLite object mapping library.
  • Retrofit - A type-safe HTTP client for Android and Java.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.

Package Structure

com.example.todoapp     # Root Package

β”œβ”€β”€ data                # For data handling.
β”‚   β”œβ”€β”€ helper          # Helper class     
β”‚   └── local           # Local Persistence Database. Room (SQLite) database
|
β”œβ”€β”€ model               # Model classes
β”œβ”€β”€ repository          # Single source of data.           
|
β”œβ”€β”€ ui                  # Activity/View layer
β”‚   └── fragments       # Fragments layer
|  
β”œβ”€β”€ utils               # Utility Classes / Kotlin extensions  
└── viewmodel           # ViewHolder for RecyclerView

Architecture

This app uses MVVM (Model View View-Model) architecture.