Dashboard (All task) | DatePicker in Add Task | TimePicker in Add Task | Add Task |
View Task | Update Task | ||
- Kotlin, Coroutines + Flow for asynchronous
- Dependency injection with Hilt
- Jetpack Navigation
- ViewModel - UI related data holder, lifecycle aware
- Room Persistence - local database
- MVVM Architecture (View - DataBinding - ViewModel - Model)
- Glide - loading images
- Retrofit2 & OkHttp3 - construct the REST APIs and paging network data
- Gson - JSON representation
- Material-Components - Material design components
- Task Add
- Task Edit
- Task Delete
- Task Update
- Task View
Clean architecture is a category of software design pattern for software architecture that follows the concepts of clean code and implements SOLID principles
It’s essentially a collection of best practice design principles that help you keep business logic, or domain logic, together and minimize the dependencies within the system.
Clean architecture is a method of software development in which you should be able to identify what a program performs merely by looking at its source code. Robert C. Martin, also known as Uncle Bob, came up with the Clean Architecture concept in the year 2012.
Separation of Concerns — Separation of code in different modules or sections with specific responsibilities making it easier for maintenance and further modification. Loose coupling — flexible code anything can be easily be changed without changing the system Easily Testable
We have not used Use cases because it will too much overkill for small project- Presentation or UI: A layer that interacts with the UI, mainly Android Stuff like Activities, Fragments, ViewModel, etc. It is dependent on Use Cases.
- Domain: Contains the business logic of the application. It is the individual and innermost module.
- Data: It includes the domain layer. It would implement the interface exposed by domain layer and dispenses data to app.
- Easily testable.
- Scalable.
- Your team can add new features even more quickly.
- The project is even easier to maintain.