- Retrofit - For the network calls.
- RxJava - For making Async Retrofit calls at the same time their responses.
- Gson - Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object.
- Okhttpclient - OkHttp is an HTTP client that's efficient by default: HTTP/2 and SPDY support allows all requests to the same host to share a socket. Connection pooling reduces request latency (if SPDY isn't available). Transparent GZIP shrinks download sizes. Response caching avoids the network completely for repeat requests.
- Junit - Unit Testing is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development (TDD), and is one of a family of unit testing frameworks which is collectively known as xUnit that originated with SUnit.
- UI Espresso - Espresso is a UI test framework (part of the Android Testing Support Library) that allows you to create automated UI tests for your Android app.
- Fresco - Fresco is a powerful system for displaying images in Android applications.
MVP design pattern is a set of guidelines that if followed, decouples the code for reusability and testability. It divides the application components based on its role, called separation of concern.
- Model: - It is responsible for handling the data part of the application.
- View: - It is responsible for laying out the views with specific data on the screen.
- Presenter: - It is a bridge that connects a Model and a View. It also acts as an instructor to the View.
- Mirza Adil