Now-days every Android application utilizes a REST web API for information exchange. This influences me to think which is the best practice to parse information and pictures from a REST web service. Now we have an entire scope of REST API libraries, which can accelerate the improvement, by decreasing coding and parsing information effectively. Android Volley and Retrofit are two of the most utilized libraries for getting to REST web APIs today.
So, here is a comparison of both the libraries with different parameters.
Uses /Code complexity:
Both Retrofit and Volley are simple to use but difficult to utilize and provides the feature to make network calls both synchronously and asynchronously. The API calls as basic java calls and it additionally handle the JSON/Xml parsing itself, while with Volley we need to do some additional code to accomplish the same for parsing.
Inbuilt Types:
The data returned by an API plays important role in implementation of network call and its handling. It is one of the essential parameter to choose which alternative we should utilize.
Volley can capture four types of responses through these requests:
StringRequest – This returns the response into String.
JsonObjectRequest – This returns the response into JSONObject.
JsonArrayRequest – This returns the response into JSONArray.
ImageRequest – This returns the response into decoded bitmap.
Retrofit can parse responses automatically like:
Boolean – Web API response has to be Boolean.
Integer – Web API response has to be an integer.
Date– Web API response has be Long format date.
String – Web API response has to be in String format.
Object – Web API response has to be in Json object.
Collections – Web API response has to be in a String Format.
Image Loading:
Volley has an inbuilt option for image loading which is bundled with a loader a custom view called NetworkImageView. This is used to download and show images.
Retrofit does not give any such element, Other libraries, for example, picasso or glide need to be used to perform image loading.
Caching:
Android volley has flexible caching mechanism. When a request is made using volley first the cache is checked for response if it is found than it is returned and parsed else network hit is made.
Retrofit does not support caching.
Retrying Mechanism:
Using volley we can add retry policy using setRetryPolicy method. It also support the customized request timeout, number of retries and back off multiplier.
Retrofit does not support retrying mechanism.
Request Cancellation:
Both Volley and Retrofit supports request cancellation.
Dynamic URLs
Retrofit supports dynamic URLs since v2.
Volley obviously supports dynamic URLs, the URL being the second parameter in the StringRequest constructor.
Post Requests and Multi-part uploads:
Volley supports both post requests and multi-part uploads but for post requests we must have to convert our java objects to JSONObject. Also for multi-part uploads we need to do some extra code and use some additional classes.
On the other hand Retrofit has full support for Post Requests and Multi-part uploads.
After comparing the major features of Android Volley and Retrofit, Volley not only supports caching of requests but it can also load images automatically. one of the best things about Retrofit is that it supports automatic parsing of responses, to their respective data types. And its light too. Hope this Android Volley vs Retrofit comparison helped you