#Retrofit #LibUpdates #Networking
Вышел Retrofit 2.5.0. Основные изменения:
* Поддержка Unit типа из Kotlin. Ведет себя аналогично Void из Java.
* Поддержка Java 8 Optional и CompletableFuture. Поддержка заменяет необходимость настройки конвертера и зависимость "converter-java8" больше не поддерживается.
* Новые расширения для Kotlin, которые позволяют создавать реализацию, передавая только интерфейс как параметр generic-а.
* Добавлены R8 правила внутри JAR. Теперь при использование R8 вам не надо добавлять собственные правила для Retrofit.
* Улучшения API
* Багфикс
Подробности
https://github.com/square/retrofit/blob/master/CHANGELOG.md#version-250-2018-11-18
Вышел Retrofit 2.5.0. Основные изменения:
* Поддержка Unit типа из Kotlin. Ведет себя аналогично Void из Java.
* Поддержка Java 8 Optional и CompletableFuture. Поддержка заменяет необходимость настройки конвертера и зависимость "converter-java8" больше не поддерживается.
* Новые расширения для Kotlin, которые позволяют создавать реализацию, передавая только интерфейс как параметр generic-а.
retrofit.create<MyService>()
* Добавлены R8 правила внутри JAR. Теперь при использование R8 вам не надо добавлять собственные правила для Retrofit.
* Улучшения API
* Багфикс
Подробности
https://github.com/square/retrofit/blob/master/CHANGELOG.md#version-250-2018-11-18
Kotlin
Unit - Kotlin Programming Language
#Retrofit #Coroutines #Kotlin
Retrofit meets coroutines
В Retrofit приходит официальная поддержка Coroutines от автор библиотеки. Пока изменения доступны только в snapshot версии, но уже в следующем релизе их можно будет начать корутинить ваши REST интерфейсы.
Появились новые возможности:
1️⃣ suspend функция
2️⃣ suspend функция
3️⃣ Добавление suspend непосредственно к функции в интерфейсе
Выглядеть использование будет так:
Retrofit meets coroutines
В Retrofit приходит официальная поддержка Coroutines от автор библиотеки. Пока изменения доступны только в snapshot версии, но уже в следующем релизе их можно будет начать корутинить ваши REST интерфейсы.
Появились новые возможности:
1️⃣ suspend функция
Call<T>.await() : T
2️⃣ suspend функция
Call<T>.awaitResponse(): Response<T>
3️⃣ Добавление suspend непосредственно к функции в интерфейсе
Выглядеть использование будет так:
interface SpaceXApi {
@GET("rockets")
suspend fun getRockets(): Call<List<Rocket>>
}
val api = retrofit.create<SpaceXApi>()
runBlocking {
val rockets = api.getRockets()
rockets.forEach(::println)
}
zsmb.co
Retrofit meets coroutines - zsmb.co
Retrofit's coroutine support has been a long time coming, and it's finally coming to completion. Take a look at how you can use it to neatly integrate networking into an application built with coroutines.
#Retrofit #Coroutines #UnderTheHood #JakeWharton
Exceptions and proxies and coroutines, oh my!
В Retrofit 2.6.0 была добавлена поддержка Kotlin Coroutine - функции в интерфейсе Retrofit можно помечать ключевым словом
. Что стоит за этой реализацией? Какие образом Java Dynamic Proxy может работать с Coroutine? В своей статье Jake делает разбор
Exceptions and proxies and coroutines, oh my!
В Retrofit 2.6.0 была добавлена поддержка Kotlin Coroutine - функции в интерфейсе Retrofit можно помечать ключевым словом
suspend
. Что стоит за этой реализацией? Какие образом Java Dynamic Proxy может работать с Coroutine? В своей статье Jake делает разбор
#Retrofit
Building your own Retrofit Call Adapter
Всем мы любим Retrofit за то, как он упрощает работу с описанием REST сервисов. Также его легко интегрировать с Rx, Coroutine и пр. библиотеками. Хотите интегрировать его с собственными типами или понять как это работает впринципе? Узнать об этом сможете из статьи
Building your own Retrofit Call Adapter
Всем мы любим Retrofit за то, как он упрощает работу с описанием REST сервисов. Также его легко интегрировать с Rx, Coroutine и пр. библиотеками. Хотите интегрировать его с собственными типами или понять как это работает впринципе? Узнать об этом сможете из статьи
Medium
Building your own Retrofit Call Adapter
The use of RxJava has really shielded us away from topics like this because RxJava is now a ubiquitous term with android development, so…
#Retrofit #DynamicProxy
Understand How does Retrofit work
Retrofit - это библиотека, которая первая приходит на ум Android разработчику при необходимости реализации REST API. С помощью чего работает Retrofit, если она не использует Annotation Processor для генерации кода? Ответ Java Dynamic Proxy API, которое позволяет создавать реализацию интерфейса и проксирует все вызовы через InvocationHandler. Это API поможет вам прятать сложные Builder объекты и делать работу с кодом проще. Рекомендую изучить и однажды но вам пригодиться
Understand How does Retrofit work
Retrofit - это библиотека, которая первая приходит на ум Android разработчику при необходимости реализации REST API. С помощью чего работает Retrofit, если она не использует Annotation Processor для генерации кода? Ответ Java Dynamic Proxy API, которое позволяет создавать реализацию интерфейса и проксирует все вызовы через InvocationHandler. Это API поможет вам прятать сложные Builder объекты и делать работу с кодом проще. Рекомендую изучить и однажды но вам пригодиться
Medium
Understand How does Retrofit work
To be a good developer know what is going on under the hood
Android Broadcast
#Retrofit #DynamicProxy Understand How does Retrofit work Retrofit - это библиотека, которая первая приходит на ум Android разработчику при необходимости реализации REST API. С помощью чего работает Retrofit, если она не использует Annotation Processor…
#Retrofit #DynamicProxy #Dex
Dynamic proxy и runtime-кодогенерация на Android / Даниил Попов
Продолжительность 33:30
Для всех тех, кого заитересовала тема Dynamic Proxy рекомендую посмотреть доклад от Даниила Попова. В нем автор рассказал о проблемах с производительность
Полезные ссылки:
👉 Результаты эксперимента по оптимизации от Даниила можно найти здесь
👉 Готовое production ready решение Dexmaker от Linkedin
Dynamic proxy и runtime-кодогенерация на Android / Даниил Попов
Продолжительность 33:30
Для всех тех, кого заитересовала тема Dynamic Proxy рекомендую посмотреть доклад от Даниила Попова. В нем автор рассказал о проблемах с производительность
Dynamic Proxy
и рефлексии
, используемой под капотом, в рамках Android и как можно обойти это решения с использованием генерации Dex.Полезные ссылки:
👉 Результаты эксперимента по оптимизации от Даниила можно найти здесь
👉 Готовое production ready решение Dexmaker от Linkedin
YouTube
Dynamic proxy и runtime-кодогенерация на Android / Даниил Попов
Apps Conf Moscow 2019
Зал «Бороться бессильны?»
22 апреля, 13:00
Тезисы и презентация:
http://appsconf.ru/moscow/2019/abstracts/4504
- Структурный шаблон проектирования прокси;
- Какими способами можно его реализовать на Android, их плюсы и минусы;
- Подробный…
Зал «Бороться бессильны?»
22 апреля, 13:00
Тезисы и презентация:
http://appsconf.ru/moscow/2019/abstracts/4504
- Структурный шаблон проектирования прокси;
- Какими способами можно его реализовать на Android, их плюсы и минусы;
- Подробный…
#Network #REST #Retrofit #RxJava
Вышел Retrofit 2.9.0
Новая версии популярной библиотеки сможет порадовать поклонников RxJava - добавлена поддержка RxJava3. Подключайте
Вышел Retrofit 2.9.0
Новая версии популярной библиотеки сможет порадовать поклонников RxJava - добавлена поддержка RxJava3. Подключайте
com.squareup.retrofit2:rxjava3-adapter
GitHub
retrofit/CHANGELOG.md at trunk · square/retrofit
A type-safe HTTP client for Android and the JVM. Contribute to square/retrofit development by creating an account on GitHub.
#coroutines #retrofit
После сборки — доработать напильником. Фиксим Retrofit для Coroutine
Автор статьи нашла интересный баг в Retrofit, который неполностью уводит обработку запросов в отдельный поток при использование Retrofit через Coroutine.
Как решение сделали RetrofitFix - обёртку над Retrofit для вывод всех операций в отдельный поток, что по их результатам дало ускорение до выполнения запроса в 10 раз.
После сборки — доработать напильником. Фиксим Retrofit для Coroutine
Автор статьи нашла интересный баг в Retrofit, который неполностью уводит обработку запросов в отдельный поток при использование Retrofit через Coroutine.
Как решение сделали RetrofitFix - обёртку над Retrofit для вывод всех операций в отдельный поток, что по их результатам дало ускорение до выполнения запроса в 10 раз.