Android Broadcast
14.2K subscribers
3.53K photos
343 videos
11 files
5.91K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab
加入频道
#Retrofit #LibUpdates #Networking

Вышел 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
#Retrofit #Coroutines #Kotlin

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)
}
#Retrofit #Coroutines #UnderTheHood #JakeWharton

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 и пр. библиотеками. Хотите интегрировать его с собственными типами или понять как это работает впринципе? Узнать об этом сможете из статьи
#Retrofit #DynamicProxy

Understand How does Retrofit work

Retrofit - это библиотека, которая первая приходит на ум Android разработчику при необходимости реализации REST API. С помощью чего работает Retrofit, если она не использует Annotation Processor для генерации кода? Ответ Java Dynamic Proxy API, которое позволяет создавать реализацию интерфейса и проксирует все вызовы через InvocationHandler. Это API поможет вам прятать сложные Builder объекты и делать работу с кодом проще. Рекомендую изучить и однажды но вам пригодиться
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 рекомендую посмотреть доклад от Даниила Попова. В нем автор рассказал о проблемах с производительность Dynamic Proxy и рефлексии, используемой под капотом, в рамках Android и как можно обойти это решения с использованием генерации Dex.

Полезные ссылки:
👉 Результаты эксперимента по оптимизации от Даниила можно найти здесь
👉 Готовое production ready решение Dexmaker от Linkedin
#Network #REST #Retrofit #RxJava

Вышел Retrofit 2.9.0

Новая версии популярной библиотеки сможет порадовать поклонников RxJava - добавлена поддержка RxJava3. Подключайте com.squareup.retrofit2:rxjava3-adapter
#coroutines #retrofit

После сборки — доработать напильником. Фиксим Retrofit для Coroutine

Автор статьи нашла интересный баг в Retrofit, который неполностью уводит обработку запросов в отдельный поток при использование Retrofit через Coroutine.

Как решение сделали RetrofitFix - обёртку над Retrofit для вывод всех операций в отдельный поток, что по их результатам дало ускорение до выполнения запроса в 10 раз.