Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

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

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#OkHttp #LibUpdates

Вышел OkHttp 3.12. Основные измнения:
* Поддержка TLS 1.3
* Proxy authenticators теперь запрашивает preemptive authentication
* Поддержка таймаута полной операции
Появилась возможность таймаут всей операции, включая поиск DNS, подключение, запись тела запроса, обработка запроса сервером и считывание ответа.
Используйте OkHttpClient.Builder.callTimeout() или Call.timeout() для задания ограничения.

* Небольшие улучшения различных API
* Исправление багов

https://github.com/square/okhttp/blob/master/CHANGELOG.md#version-3120
#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
#LibUpdates #AndroidX #Testing

Вышла новая версия библиотеки AndroidX Test 1.1.0

В рамках обновления новинки появились в:
👉 test-core
👉 Espresso
👉 JUnit4 Rules
👉 Runner
👉 Truth

Все библиотеки понемногу были улучшены, улучшена поддержка Robolectric, Android 9.0 и представлено ActivityScenario API. Оно позволяет запускать Activity во время тестов и проводить ее через весь жизненный цикл. Аналогичное API появилось для Fragment - FragmentScenario. Все это поддерживается Robolectric!

Примеры работы с новым API:
@RunWith(AndroidJUnit4::class)
class MyTestSuite {
@Test fun testEvent() {
val scenario = ActivityScenario.launch(MyActivity::class.java)
scenario.moveToState(State.CREATED)
}
}


@RunWith(AndroidJUnit4::class)
class MyTestSuite {
@Test fun testEvent() {
val scenario = ActivityScenario.launch(MyActivity::class.java)
scenario.recreate()
}
}
#Kotlin #Coroutines #LibUpdates

KotlinX.Coroutines 1.1.0 Released

Вышла новая версия библиотеки корутин. Апдейт направлен на улучшения дебага, производительности и стабильности корутин, а именно было сделано следующее:
👉 Читабельные стектрейсы корутин 🎉 - используйте системное свойство kotlinx.coroutines.debug
👉 Новый модуль kotlinx-coroutines-debug 🎉 - теперь можно получить дамп работы корутины
👉 Новый модуль kotlinx-coroutines-test 🎉 - тестировать становится удобнее, появилась функция Dispatchers.setMain() для подмены Dispatchers.Main в тестах
👉 Dispatchers.Default теперь потребляет меньше CPU ресурсов в JVM
👉 MainScope() и CoroutineScope.cancel() позволят вам в 1 строку создавать CoroutineContext для корутин
👉 Корутины теперь собираются в progressive режиме
👉 Множество других улучшений, исправлений багов и обновлений в документации
#Dagger #LibUpdates

Release Dagger 2.20

Вышла новая версия библиотеки Dagger 2. Нового функционала релиз не принес, но сделал много улучшения:
👉 Увеличена скорость процессинга аннотаций
👉 Улучшение валидация графа
👉 Исправление багов
👉 Удаление deprecated кода
#LibUpdates #ButterKnife #AndroidX

Butterknife 9 & 10 от Jake Wharton

Butterknife - это библиотека, избавившая нас от findViewById. Для тех кто использует Kotlin есть решение в виде Kotter Knife, которое не требует использование annotation процессора и делает код более Kotlin идиоматичным.

Butter Knife 9 привнес важные изменения по улучшению работы:
👉 Добавлена поддержка AndroidX (опционально)
👉 Выделен артефакт butterknife-runtime из butterknife, который содержит API, необходимое для сгенерированного кода, но не позволяет достучаться к сгенерированному коду через рефлексию. Это улучшает работу с R8/ProGuard
👉 Экспериментальный артефакт butterknife-reflect. Он заменяет собой annotation процессинг и позволяет ускорить сборку проекта. Подробнее читайте в README
👉 Android Lint проверки теперь работают в Kotlin.
👉 Добавлена поддержка Android Gradle Plugin 3.3
👉 Переход на Java 8 для всех артефактов
👉 Исправление багов
👉 Удалены deprecated методы из Butter Knife 8
👉 Binding шрифтов теперь работает на API ранее 26

Также вышел Butter Knife 10. Отличия минимальны:
👉 Полный переход на AndroidX
👉 Удалены deprecated методы из Butter Knife 9
#LibUpdates

LeakCanary 1.6.3

Вышла новая версия LeakCanary. Она привнесла только багфикс 😀
#Dagger #LibUpdates #DependencyInjection

Dagger 2.21 is out

Вышла новая версия Dagger. Релиз не содержит нового функционала и включает:
👉 Улучшение скорости сборки
👉 Новые валидации графа зависимостей
👉 Улучшения в генерированном коде
#Networking #LibUpdates

OkHttp 3.13 was released

Вышла новая версия библиотеки OkHttp. В обновление реализовано:
👉Минимальная поддерживая версия Android 5.0 и Java 8. Это связано с проблемой поддержки TLS 1.2 на старых версиях Android
👉TLSv1 и TLSv1.1 отключены по умолчанию
👉Обновлено Okio до версии 1.17.3. Для тех кто использует Kotlin friendly Okio - обновитесь до версии 2.2.2 и выше
👉 Различный багфикс и улучшения API
#LibUpdates #ButterKnife #JakeWharton

ButterKnife 10.1.0 was released

Вышло обновление ButterKnife 10.1.0. Что нового:
👉 Слушатель для OnLongClickListener больше не требует возвращения boolean и может возвращать void
👉 Добавлена поддержка @OnTextChanged и @OnPageChange в butterknife-reflect
👉 Улучшения в butterknife-reflect
#Network #LibUpdates

OkHttp 3.14

Изменения в библиотеке:
👉 Удалены уже давно помеченные как deprecated OkUrlFactory и OkApacheClient
👉 Добавлена поддержка duplex вызовов по HTTP/2
👉 Запрет на повторную передачу тела запроса с помощью RequestBody.isOneShot()
👉 EventListener теперь содержит новые методы requestFailed() и responseFailed(), которые requestBodyEnd() и responseBodyEnd(), в случае возникновения ряда ошибок
👉 Обновление до Conscrypt 2.0.0
👉 Обновление списка встроенных публичных суффиксов
👉 Исправление ошибок, утечек памяти,
👍1
#Dagger #LibUpdates #DependencyInjection

Вышел Dagger 2.22

Вышел Dagger 2.22. В новом релизе нас ждут:
👉 Теперь создавать компоненты можно не только с помощью Builder (помечая интерфейс @Component.Builder), но и фабрикой с единственным методом, принимающим все параметры (для этого используйте @Component.Factory)
👉 @BindsInstance теперь можно применять к параметрам метода. Это сделано для поддержка Factory у Component
👉 Публичные модули могут включать непубличные
👉 Улучшение производительности процессора аннотаций и сгенерированного кода
👉 Прочие мелкие улучшения

Версия уже доступна и Вы можете начать обновление!
👍1
#Kotlin #Coroutines #LibUpdates

Вышла библиотека kotlinx.coroutines 1.2.0

В обновление вы можете найти:
👉Добавлены поддержка Flow - холодных каналов. Подробности в статьи Романа Елизарова "Cold flows, hot channels"
👉 Улучшение дебага корутин
👉 Dispatchers.Unconfined, MainCoroutineDispatcher.immediate, MainScope and CoroutineScope.cancel теперь стабильны
👉 withContext() теперь проверяет статус активности корутины перед выполнением
👉 Значительно улучшена скорость инициализации Dispatcher.Main
👉 Представлен CompletableJob, который теперь возвращается в результате создания Job и SupervisorJob
👉 Больше не используются приватные API на последних версиях Android
👉 Добавлена invoke() функция для Dispatcher: теперь можно вместо withContext(UI) { ... } выполнять UI { ... }
👉 Kotlin 1.3.30
👉 Исправлены баги
👉 Улучшения в производительности, генерируемом коде и обработке исключений

Важное замечание: из-за обновления Kotlin в вашем проекте вам также надо его обновить + есть сейчас проблема работы KtLint с новой версией языка.
👍1