Skip to content

hexfa/Taxi_App_Clean_Architecture_MVVM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clean_Architecture_MVVM

Clean Code Map & List by Clean Architecture & MVVM with Test code

Demo of App:

1- Refreshing
2- Select a car on List
3- Select a car on Map

An application which has 3 major Duty:

1.Receive the data from Remote(End Point) which it is some useful vehicle- information provided by Json
2.Showing the list of our vehicles which is done in this project in “MainActivity.kt” using RecyclerView
3.Showing all vehicle on the map using marker


Additional capabilities which this project has:

1.Bottom sheet to ask user whether he/she wants to send request to that vehicle or not(fake functionality by showing Toast).
2.Swipe Refresh Layout in “MainActivity.kt” which with pulling down the page we can manual refresh the data from Remote(End Point).
3.Click Events on markers in “MapActivity.kt” which will set center of camera on marker and zoom in on that specific area and opens the bottom sheet which is described on the first item in this list.
4.Click Events on Request buttons in “MapActivity.kt” that will show a “Snackbar” which shows Request for that specific car has been sent.
5.Click on item in the list of vehicles that will bring the user to “MapActivity.kt” and find and zoom on specific which user has been clicked on and opens the bottom sheet which is described on the first item in this list.


Technologies:

1.Clean Architecture
2.MVVM
3.View Binding
4.Google Map
5.Retrofit
6.Coroutines
7.Dagger Hilt
8.Swipe Refresh Layout
9.Different Screen Size
10.Unit Test


Some noticeable points:

1.Using “DiffUtil” technology for keep our list updated : “DiffUtil” is the best technology to updating list that does not need to reload the data
2.Testing the “UseCase” with Simulating data transfer between “Repository” and “UseCase” which is provided by Creating Repository Interface that contains RepositoryImpl ‘s behavior and Creating fake repository in test which inherit from Repository Interface and creating fake data to send to “UseCaseTest” Class and we can use the fake repository which is simulating the behavior of real repository to Create ”UseCase” Object to test it.
3.Using lambda expression for “onClick” events of items in list of vehicles

About

Clean Code Map & List by Clean Architecture & MVVM with Test code

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages