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

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

РКН https://abdev.by/rkn_tg_ab
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
#OkHttp #Kotlin

Metrics for OkHttp’s Kotlin Upgrade

OkHttp мигрирует на Kotlin 🎉в версии 4.0. Работа по миграции только начата, и ее результаты мы сможем увидеть в середине лета.

Еще думаете на чем писать код в Android
👍1
#OkHttp #Library

OkHttp 3.14.2

Вышел OkHttp 3.14.2 в котором произошло исправление багов при работе с HTTP/2 и исправлены NullPointerException
👍1
#OkHttp #networking #Kotlin

OkHttp 4 Goes Kotlin

Состоялся релиз новой версии самого популярного HTTP клиента для Android - OkHttp 4.0. Главное изменение - библиотека была полностью переписана на Kotlin.

Несмотря на переход на новый язык, осталась полная бинарная совместимость на уровне Java и Kotlin кода с предыдущей версией. Это значит что вы можете обновиться на новую версию и вам не придется переписывать код.

Библиотека потребует обновлений для тех кто использует:
👉 ProGuard: найдены проблемы при работе с OkHttp. R8 работает без проблем
👉 Mockito + OkHttp: 26 методов в OkHttpClient стали финальными и поменялась идеология как правильно тестировать OkHttp
👉 Advanced Profiling в Android Studio: пока не работает, ждем обновлений от Google
#OkHttp #Networking

Вышел OkHttp 4.3.0

Пока вчера все готовились к празднованию нового года ребята из OkHttp решили сделать новый релиз. Список изменений небольшой и имеет только одну новое важное изменение:
👉 Более агрессивное переиспользование потоков между OkHttp's HTTP/2 соединениями, connection pool, web socket-ами, и кэшем
👉 Обновление до Kotlin 1.3.61
👉 Исправление багов
#Security #Networking #OkHttp

How to Prepare Your Android App for a Pentest – Networking Edition

Pentests (penetration testing) - это симуляция кибер атаки на приложение с целью выявления уязвимостей, которые могут быть использованы злоумышленниками.

В статье разбираются такие понятия как TLS, Certificate pinning, Hostname verification, а самое главное интеграция этого в вашего приложения на основе OkHttp.
#OkHttp #Network

Вышла OkHttp 4.4.0

Что нового:
👉 Новый артефакт bill of materials (BOM) для OkHttp, который позволит вам не задавать версию и держать все библиотеки для OkHttp в нужных версиях
👉 Исправление багов и улучшения
#OkHttp #Networking

OkHttp Interceptor - Making the most of it

Популярная библиотека для работы по сети по протоколу HTTP OkHttp используется во всех проектах на Android, где есть выход в сеть.

Библиотека имеет одну удобную возможность - перехват любого запроса (Intercepting). С помощью нее можно логировать любой запрос (например, OkHttp Logging Interceptor).

В статье показывается пример как вы сможете использовать мощь Interceptor в своем коде.
#Network #OkHttp

Authorization and retrying of web requests for OkHttp and Retrofit

Рецепт как с помощью OkHttp Interceptors можно реализовать повтор неудавшегося выполненного запроса и или обновить Auth Token, в случае если он истек.

Такой способ позволяет автоматизировать выполнение операций, которые стандартно приходится реализовать при работе с REST.
#Networking #OkHttp

Вышел OkHttp 4.7.0

👉 Более простой способ отключить проверку безопасности во время разработки с помощью HandshakeCertificates.Builder.addInsecureHost()
👉 Добавлены события cacheHitcacheMiss и cacheConditionalHit() в EventListener
👉 Добавлена константа с версией текущего используемого OkHttp клиента
👉 Исправлены баги с Android Studio 4.1 и другие
#OkHttp #Networking #Optimization

Maximizing OkHttp connection reuse

Разработчики из Booking закопались в оптимизации OkHttp чтобы получить больше скорости для своих сетевых запросов. Узкое место было найдено в том, что переиспользование socket соединений не работает так эффективно, как хотелось бы разработчикам библиотеки.

К сожалению, библиотека OKHttp не содержит callback, который бы позволил бы перехватить управление созданием RealConnection, не вам стоит обратить на рекомендацию от создателей:
Security.insertProviderAt(Conscrypt.newProvider(), 1);
#okhttp

OkHttp: How to Refresh Access Token Efficiently

OAuth 2.0 - самый популярный подход при работе с авторизацией в REST API. Вам нужно не забывать обновлять ваши токены, так как они могут протухать. Реализовать это можно с помощью OkHttp Interceptor или Authenticator, а в статье найдете руководство
#AndroidBroadcast #OkHttp

📺 Возможности OkHttp о которых вы не знали

Практически ни один Android проект не обходится без использования Retrofit, но мало кто интересуется тем что под капотом у этой библиотеки, чтобы выполнять сетевые запросы.

Библиотека OkHttp имеет множество возможностей, которые позволят вам эффективнее реализовывать сетевые операции и сделать приложения отзывчивее и лучше. Из видео вы узнаете о таких возможностях
Инструкция (EN, 4м) по настройке кэша в OkHttp чтобы делать меньше запросов в сеть. Надо чтобы ваш сервер добавлял к ответам специальные заголовки с информацией о размещение в кэш, либо уже сами перехватывайте запросы и добавляйте эту инфу (не советую)

#сеть #okhttp
👍43
Большая статья (EN,13м) по тому как с помощью кэша оптимизировать работу сетевого слоя клиента. ПОМНИТЕ, что оптимизации должны идти как с клиента, так и с сервера.

#network #okhttp
👍6
Обновление API токена в OkHttp/Retrofit

OkHttp поддерживает возможность обновления токена через специальный интерфейс Authenticator, которые срабатывает если API запрос на сервер вернет код 401 Unauthorized

class TokenAuthenticator(private val tokenProvider: TokenProvider) : Authenticator {

@Throws(IOException::class)
override fun authenticate(route: Route?, response: Response): Request? = runBlocking {
// Получаем новый токен
val newToken = tokenProvider.refreshToken()

// Если токен не удалось обновить, возвращаем null
if (newToken == null) return null

// Сохраняем новый токен
tokenProvider.saveToken(newToken)

// Создаем новый запрос с обновленным токеном
return response.request.newBuilder()
.header("Authorization", "Bearer $newToken")
.build()
}
}

// Пример API для работы с токеном
interface TokenProvider {
suspend fun getSavedToken(): String?
suspend fun saveToken(newToken: String)
suspend fun refreshToken(token: String?): String?
}

Добавление Authenticator в OkHttp
fun createOkHttpClient(tokenProvider: TokenProvider): OkHttpClient {
return OkHttpClient.Builder()
.authenticator(TokenAuthenticator(tokenProvider))
.build()
}


Я часто сталкивался с тем, что реализация бэкенда возвращает отличный HTTP код и тогда уже приходится делать решение через Interceptor. Делитесь в комментариях как вы пишите логике по обновлению токенов.

#okhttp #сеть #лучшиепрактики
🔥38👍10👎41🤯1
⚰️ Библиотеки RxIdler и okhttp-idling-resource теперь depreacated

Десять лет назад Espresso привнес в тестирование Android одно из своих ключевых понятий – idling resource. Этот механизм ждал, пока приложение выполнит фоновую работу, прежде чем тест мог продолжиться. Square выпустили RxIdler и okhttp-idling-resource для мониторинга RxJava и OkHttp. Сегодня пришло время отправить их в архив.

Что не так с idling resource?
Idling resource привязывает тесты к внутренней реализации приложения, а не к пользовательскому взаимодействию. Настоящий пользователь не ждет, пока OkHttp станет “idle” – он смотрит на UI. Если кнопка “Продолжить” загорелась зеленым – значит, можно нажимать.

💡 Как теперь тестировать ожидания?
Google обновил рекомендации, и теперь Compose предлагает встроенные API для ожидания условий. Для View-based интерфейсов можно написать кастомный ViewAction, который зацикливается на проверке условия, пока оно не выполнится.

Deprecated статус не значит что библиотеки больше не рабоают. Вы можете их продолжать использовать, они стабильны, но подход больше не рекомендуется к использованию.

#android #compose #okhttp #rxjava #тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
11👎7👍5😢1🎉1