1. Get rid of managing request and response manually,
  2. Get rid of managing thread and background process by yourself.
  3. Get rid of the boilerplate and unreliable async task code, Overall maintains clean code, Each part of code will have a single responsibility.
  4. Get the parsing of your response done by lib itself, Retrofit will save your development time.
  5. Most of the things can be customized according to our needs.
  6. Better support for Rx android and kotlin coroutines libs.
  7. By default follows MVP pattern so simple and easy to understand.
  8. The response we get is very straight forward error codes and success code are pretty well handled.
  9. Retrofit makes it much easier to configure HTTP intercepts (if you want to do something before or after an HTTP call).
  10. By default uses disk cache(If we enable caching).
  1. Tightly coupled with the response type.
  2. Internally uses OKHTTP for HTTP calls.
  3. It does get the success response if we touch to the server so if any error is there so we have to get from the response code and behave accordingly.
  4. In other words, Only get failure response if the server is not reachable or some problem is there in response parsing.
  5. For image, loading retrofit is not having tags as we have in the volley.
  6. Retrofit: caching should “just work” if your server sets the correct cache-control headers. If not, or if you’re trying to do something unusual, you may be out of luck.
  7. Retrofit: does not support setting priority, although there are hacks available; supports cancellation since v2 (which is in late beta now); supports manual request retries.
  8. Internal thread pool logic is not exposed to clients.
  1. Request queuing and prioritization.
  2. Effective request cache and memory management.
  3. Extensibility and customization of the library to our needs.
  4. Canceling the requests.
  5. Automatic scheduling of network requests.
  6. Multiple concurrent network connections.
  7. Transparent disk and memory response caching with standard HTTP cache coherence.
  8. Strong ordering that makes it easy to correctly populate your UI with data fetched asynchronously from the network.
  9. Volley provides debugging and tracing tools.
  1. Complex to implement for beginners.
  2. Have default caching which we might not need in our projects.
  3. It does not give the response code we need to extract that.
  4. I need to parse the response manually by writing the code.
  5. Need to convert JSON object JSON array for request.




Senior Android App Developer | Startup | Product base | Java | Kotlin | MVVM | Architecture components | Android Blogger

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

When an Android developer goes full web mode

Cost: A New Critical Metric for DevOps

The key pillars of legacy migration and digital transformation

Things to Keep in Mind while Looking to Hire a Java Developer

Leaked “malware” OutlawCountry review

Most useful Markdown commands

COBOL IntelliJ Plugin: Autocompletion

Kubernetes Cluster Backup — A Quick Glimpse

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Aalishan Ansari

Aalishan Ansari

Senior Android App Developer | Startup | Product base | Java | Kotlin | MVVM | Architecture components | Android Blogger

More from Medium

How can use Dexter library for runtime permissions in Android?

Launch Modes in Android

CameraX in Android

Creating Home Channel on Android TV