Volley vs Retrofit. Описание библиотек REST API.
Краткое сравнение. Для чего использовать.
Использовать Retrofit:
- когда нужно стандартная реализаци REST API для парсинга JSON
- реализация без кастомным запросов, запросов с приоритетом, кэширования, повторов etc.
Использовать Volley:
- необычные требования к запросам
- возможно, будет необходимость расширения функциональности вашего REST API в дальнейшем
NB: Если необходимо загружать большие файлы или потоки, то не следует использовать ни то ни другое. Используйте Download Manager
Retrofit
Свойства:
- made in Square
- не поддерживает обработку изображений (хорошо использовать для этого Picasso (см. ссылки о Picasso vs Glide ниже))
- использует пул потоков, параллельные запросы и библиотеку OkHttp
- приоритезация, отмена, повторные запросы - вручную (в Retrofit 2 немного удобнее)
- полная поддержка POST-запросов и multipart загрузок файлов
- Retofit 2 работает с RxJava проще (with Observable types)
- HTTP-запросы описываются через аннотации, синхронные и асинхронные вызовы REST-методов, данные могут передаваться в виде JSON, XML, Protobuf. С этой библиотекой на пару умеет работать RoboSpice.
Итак, Retrofit - библиотека REST-клиент для работы в Android.
Подключение:
Volley
Свойства:
- made in Google
- поддерживает минимальный функционал обработки изображений (для более полного функционала, можно использовать Glide, + о Glide см. тут, + отличия Glide от Picasso тут или тут или наглядно тут)
- использует пул потоков, параллельные запросы и библиотеку OkHttp
- гибкий механизм кеширования (который хорошо подходит для Glide)
- поддерживает выставление приоритетов, отмену запросов, повторные запросы - используя для этого немного кода
- поддерживает POST-запросы (но необходимо конвертировать Java-объекты в JSON-объкты используя, например, библиотеку Gson), также поддерживает multipart загрузки, но, предоставляя большую гибкость, api не такой отполированный, как у Retrofit’а
Слухи
- (UPD: 26.08.2017) Google как-то склоняется к Retrofit (вывод по примерам, которые они показывают в своих же лекциях), что делает им честь, конечно. Но всегда нужно помнить о разных условиях, в которых лучше применять одну или вторую библиотеки.
01 07 2017