1
Volley vs Retrofit
2
● What is Retrofit and how it works
● What is Volley and how it works
● Comparison of libraries’ performing speed
● Which one is better to use?
3
Retrofit
Query description:
@GET("/v1/{id}")
Response getSomething(@Path("id") int id);
RestAdapter
RestAdapter APP_SERVER = new RestAdapter.Builder()
.setEndpoint(BuildConfig.HOST)
.setClient(new OkClient(new OkHttpClient()))
.setLogLevel(RestAdapter.LogLevel.FULL)
.build();
Run query:
Communicator.getAppServer().get();
4
Volley
Query description:
StringRequest stringRequest = new
StringRequest(Request.Method. GET, BuildConfig. HOST,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
);
Queue initialization:
if (requestQueue == null) {
Network network = new BasicNetwork( new HurlStack());
requestQueue = new RequestQueue( new NoCache(), network);
requestQueue.start();
VolleyLog.DEBUG = true;
}
Run query:
requestQueue.add(stringRequest);
5
Comparison of performance speed without caching
50 queries
Retrofit - 707,5ms
Retorfot SD - 9,3
Volley - 871,36ms
Volley SD - 9,94
300 queries
Retrofit - 854.95ms
Retorfot SD - 11,23
Volley - 847.79ms
Volley SD - 12,8
6
Comparison of performance speed with caching
50 queries
Retrofit - 354,9ms
Retorfot SD - 10,2
Volley - 322,22ms
Volley SD - 8,03
7
Comparison of performance speed of parallel queries:
Chsnge in Volley and Retrofit settings:
Retrofit
.setExecutors(Executors.newFixedThreadPool(50), null)
Volley
requestQueue = new RequestQueue(new NoCache(), network, 50);
Volley ~8s Retrofit ~4s
8
So, which one is better to use?
9
Thanks for your attention!
Alex Bagach
Android Developer

Retro vs volley (2)

  • 1.
  • 2.
    2 ● What isRetrofit and how it works ● What is Volley and how it works ● Comparison of libraries’ performing speed ● Which one is better to use?
  • 3.
    3 Retrofit Query description: @GET("/v1/{id}") Response getSomething(@Path("id")int id); RestAdapter RestAdapter APP_SERVER = new RestAdapter.Builder() .setEndpoint(BuildConfig.HOST) .setClient(new OkClient(new OkHttpClient())) .setLogLevel(RestAdapter.LogLevel.FULL) .build(); Run query: Communicator.getAppServer().get();
  • 4.
    4 Volley Query description: StringRequest stringRequest= new StringRequest(Request.Method. GET, BuildConfig. HOST, new Response.Listener<String>() { @Override public void onResponse(String response) { } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } } ); Queue initialization: if (requestQueue == null) { Network network = new BasicNetwork( new HurlStack()); requestQueue = new RequestQueue( new NoCache(), network); requestQueue.start(); VolleyLog.DEBUG = true; } Run query: requestQueue.add(stringRequest);
  • 5.
    5 Comparison of performancespeed without caching 50 queries Retrofit - 707,5ms Retorfot SD - 9,3 Volley - 871,36ms Volley SD - 9,94 300 queries Retrofit - 854.95ms Retorfot SD - 11,23 Volley - 847.79ms Volley SD - 12,8
  • 6.
    6 Comparison of performancespeed with caching 50 queries Retrofit - 354,9ms Retorfot SD - 10,2 Volley - 322,22ms Volley SD - 8,03
  • 7.
    7 Comparison of performancespeed of parallel queries: Chsnge in Volley and Retrofit settings: Retrofit .setExecutors(Executors.newFixedThreadPool(50), null) Volley requestQueue = new RequestQueue(new NoCache(), network, 50); Volley ~8s Retrofit ~4s
  • 8.
    8 So, which oneis better to use?
  • 9.
    9 Thanks for yourattention! Alex Bagach Android Developer