Retrofit/Volley
Aalishan Ansari
SDE-2 @TESCO | Android | Kotlin | Java | MVVM | Coroutines | Rx Android | Architecture components | Jetpack Compose | Product base | Startups | Individual & Open Source Contributor | UI/UX Designer | Android Blogger
Web service calling the client for?Android apps
Moving forward in the world of digitalization every app needs to communicate with the server, It's you who choose the way to communicate to the server from your apps, It makes a lot of sense to use the proper gateway to communicate from the server. The user does not want to delay in response from the server or low performance of the app due to API calls.
Let's discuss the 2 most useful clients for API calls.
Retrofit
Retrofit?can be fit in any situation of API calls whether it is rest or soap it is an open-source lib from the square.
Retrofit?is a type-safe HTTP client that enables the communication between your app and API server, Retrofit turns your HTTP request into interfaces, It can have both synchronous and asynchronous calls of API.
Retrofit?is the class through which your API interfaces are turned into callable objects. By default, Retrofit will give you sane defaults for your platform but it allows for customization.
By default, Retrofit can only deserialize HTTP bodies into OkHttp’s?ResponseBodytype and it can only accept its?RequestBody?type for?@Body.
Some Advantages of Retrofit:
- Get rid of managing requests and responses manually,
- Get rid of managing thread and background processes by yourself.
- Get rid of the boilerplate and unreliable async task code, Overall maintains clean code, and Each part of the code will have a single responsibility.
- Get the parsing of your response done by lib itself, Retrofit will save your development time.
- Most of the things can be customized according to our needs.
- Better support for Rx android and kotlin coroutines libs.
- By default follows the MVP pattern so simple and easy to understand.
- The response we get is very straight forward error codes and success codes are pretty well handled.
- Retrofit makes it much easier to configure HTTP intercepts (if you want to do something before or after an HTTP call).
- By default uses disk cache(If we enable caching).
领英推è
Some Limitations of Retrofit:
- Tightly coupled with the response type.
- Internally uses OKHTTP for HTTP calls.
- It does get a successful response if we touch the server so if any error is there so we have to get from the response code and behave accordingly.
- In other words, only get a failure response if the server is not reachable or some problem is there in response parsing.
- For image, loading retrofit is not having tags as we have in the volley.
- 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.
- 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.
- Internal thread pool logic is not exposed to clients.
Volley
Volley?is an?HTTP library?that makes networking very easy and fast, for Android apps. It was developed by Google and introduced during Google I/O 2013. It was developed because there is an absence in Android SDK, of a networking class capable of working without interfering with the user experience. Although Volley is a part of the Android Open Source Project(AOSP), Google announced in January 2017 that Volley will move to a standalone library. It manages the processing and caching of network requests and it saves developers valuable time from writing the same network call/cache code again and again.
Features
- Request queuing and prioritization.
- Effective request cache and memory management.
- Extensibility and customization of the library to our needs.
- Cancelling the requests.
- Automatic scheduling of network requests.
- Multiple concurrent network connections.
- Transparent disk and memory response caching with standard HTTP?cache coherence.
- Strong ordering that makes it easy to correctly populate your UI with data fetched asynchronously from the network.
- Volley provides debugging and tracing tools.
10. Provides image and JSON object, JSON array, and String request types.
Limitations of Volley
- Complex to implement for beginners.
- Have default caching which we might not need in our projects.
- It does not give the response code we need to extract.
- I need to parse the response manually by writing the code.
- Need to convert JSON object JSON array for request.
Conclusion
If we compare both so both are having advantages and disadvantages. If performance-wise both are almost the same so we can choose one of them, but in my perspective, I would go for Retrofit because it is easy to use and separation of code is easy in retrofit, We need to write less code in the retrofit.
Senior Android Developer
2 å¹´Android fast networking
Senior Android Developer
2 å¹´Retrofit
Modern Android Developer, Kotlin Developer, KMP Developer, Software Engineer, Compose <3
2 å¹´None of the above, i use ktor