- MVVM Architectural pattern
- Offline Support
- Unit test demonstration using JUnit
- UI unit test demonstration using Espresso
- Gradle scripts for running sonarqube static code analysis, code coverage, etc.
The application has been built with offline support. It has been designed using Android Architecture components with Room for offline data caching. The application is built in such a way that whenvever there is a service call, the result will be stored in local database.
The whole application is built based on the MVVM architectural pattern.
The main advantage of using MVVM, there is no two way dependency between ViewModel and Model unlike MVP. Here the view can observe the datachanges in the viewmodel as we are using LiveData which is lifecycle aware. The viewmodel to view communication is achieved through observer pattern (basically observing the state changes of the data in the viewmodel).
a) Android Architectural Components
c) MVVM
d) Retrofit
f) JUnit for Unit testing
d) Repository pattern
e) Facade pattern
Open terminal and type the below command to generate debug build
./gradlew assembleDebug
Open terminal and type the below command to generate release build
./gradlew assembleRelease
Open terminal and type the following command
./gradlew clean jacocoTestReport
The coverage report will be generated on the following path.
app/build/reports