Android Broadcast
14.1K subscribers
3.47K photos
316 videos
11 files
5.78K links
Подборка новостей и статей для Android разработчиков.

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#RxJava

Operator fusion in RxJava 2

Разбор оптимизаций библиотеки RxJava 2 для обеспечения наибольшей производительности и устранения негативных эффектов от создание множества промежуточных объектов, называемые "operator fusion".
#RxJava #Kotlin

Fundamentals of RxJava with Kotlin for absolute beginners

Хороше интро в мир RxJava на Kotlin:
👉 Что такое RxJava
👉 Создание Observable
👉 Backpressure
👉 Типы emitter: Flowable, Maybe, Single, Completable
👉 Schedulers
👉 Операторы
👉 Disposable - отмена выполнения
👉 Subject = Observable + Observer
#Coroutines #Flow #RxJava

From RxJava 2 to Kotlin Flow: Threading

Kotlin Flow - это реализация реактивных стримов на основе Coroutine, и естественно Android разработчики будут сравнивать ее к тому, чему уже привыкли - RxJava 2.

В статье автор проводит сравнение работы по управлению Java потоками выполнения в RxJava Obserable и Coroutine Flow, а также миграции с первого подхода на последний.
#RxJava #Coroutines #Backpressure

From RxJava to Kotlin Flow: Backpressure

Сравнение работы с Backpressure в RxJava 2 и Coroutines Flow:
👉 Как решается в Flow
👉 Flowable
👉 Операторы для работы с Backpressure в RxJava
#RxJava

Вышла RxJava 3.0

На день всех влюбленных нам решили подарить новую мажорную версию RxJava.

Что нового:
👉 Минимальная версия поддерживаемая версия Java теперь 8 + добавилось множество возможностей
👉 Улучшена работа с ошибками
👉 ConnectableFlowable и ConnectableObservable - поддержка множества подписчиков
👉 Возможность приостанавливать Flowable
👉 Улучшение работы операторов
👉 Улучшение stacktrace при ошибках

Подробности изменений в API
Полный список изменений можно найти здесь

RxJava 2 переходит в режим поддержки и в нее будут добавляться только багфиксы.
#Coroutines #Flow #RxJava

From RxJava to Kotlin Flow: Error Handling

Продолжение серии в статей в которой сравниваются различия между Coroutines Flow и RxJava, помогающее разработчикам мигрировать с одного API на новое.

В новой части рассматривается разница к подходу в обработке ошибок
#RxJava

Rx головного мозга

Команда Android-разработки FunCorp вдохновилась докладом Jake Wharton и решила попробовать написать приложение полностью построенное на Rx. Даже так, где это кажется очень странным, сильно упрощает жизнь и делает код очевиднее.

Так ли это или нет можете почитать в разборе этого подхода в статье.
#Coroutines #RxJava

The Real Kotlin Flow benefits over RxJava

«Я использую RxJava. Зачем мне Coroutines Flow?» - такой вопрос я зачастую слышал, когда делал доклады по Flow или топил за этот подход в офисе на кухне.

В статье автор сравнивает эти 2 подхода и показывает, как Flow хорошо себя зарекомендовали и позволяют делать, а где пока есть проблемы
#Network #REST #Retrofit #RxJava

Вышел Retrofit 2.9.0

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

Что нового в RxJava 3

Весной вышла в свет новая версия реактивного фреймворка RxJava. Она не привнесла кардинальных изменений и в основном содержит исправление багов. В статье автор описывает что нового мы получили в этой мажорной версии:

👉 Поддержка Java 8
👉 Поддержка Streams и CompletabeFuture
👉 Убрана поддержка java.time.Duration и java.util.function
👉 По заверениям разработчиков теперь не будут теряться ошибки
👉 Функция reset для "горячих" Observable
👉 Возможность ставить Flowable на паузу
👉 Новый тип - Supplier – аналог Callable, но с throws Throwable

Так же автор даёт рекомендации по миграции на новую версию. Более подробно можно ознакомиться в статье.
#RxJava #Backpressure

Анатомия backpressure в реактивных потоках

Backpressure - один из важных элементов реактивной парадигмы и может казаться что это довольно сложный механизм, но автор статьи рассказывает о том как "под капотом" устроен этот механизм и что, фактически, реализовать его можно довольно быстро.

В качестве примере автор приводит код, в котором он описал упрощённый механизм backpressure при помощи обычного семафора.
#Coroutines #RxJava

Как безболезненно мигрировать с RxJava на Kotlin Coroutines+Flow

Сравнение подходов RxJava и Flow для обработки реактивных стримов и как происходит миграция
#RxJava

How RxJava chain actually works

Особенности работы RxJava цепочек и их жизненный цикл. Полезно как тем кто изучает, так и пользует. Понять Rx непростая задача (
#rxjava

Вышла RxJava 3.1.0
👉 Теперь минимальная поддерживаемая версия Android - 5.0 (API Level 21)
👉 Стабилизация API
👉 Новые методы
👉 Багфикс
#room #rxjava

Room + RxJava2 Flowable получение пустого списка при отсутствии данных

Магия с RxJava чтобы получать нужные данные при пустой таблице в Room получить пустой список. Странно что приходится городить такие костыли, но что есть
#rxjava

The RxJava Threading Mistake You Are Probably Making (6 мин)

Всем кто пользуется RxJava - ловите статью. В ней рассказывает про ошибки, которые вы можете допускать в работе с потоками, когда всё это прячется за Scheduler
#rxjava

The most popular RxJava misunderstanding (7 мин)

Rx непрост... Но зачастую с библиотеками складывается недопонимание именно из-за поверхностного понимания их принципов работы и простой копи-пасты, а также нежелание читать документацию.

Автор статьи рассказывает про базисы работы цепочек и из понятий и также как сработают observeOn и subscribeOn. Подробный разбор с графикой, примерами. Очень хорошая работа, рекомендую!
Сравнение (EN,15м) выполнения операций в Android через Executor, RxJava, Coroutines и Flow. В тесте провели замер скорост через Jetpack Microbenchmark 3 операций:

Результат: Разные технологии не влияют для многопоточных IO операций. Выбор фреймворка лучше основывать на вашем удобстве. Простые задачи, как арифметика, лучше выполнять без многозадачности.

Как считаете вы?

#производительность #coroutines #rxjava
⚰️ Библиотеки 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