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

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

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

Coroutine Context and Scope от Романа Елизарова

CoroutineScope и CoroutineContext очень похожие концепты, CoroutineScope содержит одно единственное свойство - coroutineContext.

В своей статье Роман Елизаров показывает зачем одним и тем же сущностям порой пристают разные имена, чтобы явно продемонстрировать их разные цели применения.
👍1
#Rx #Kotlin #Library

Reaktive — Настоящий RxKotlin на чистом Kotlin

Как бы я не любил #Coroutine, Rx подход решил много проблем в свое время: callback hell, предоставил удобный стиль работы с потоками данных (функциональный) и упростил работу с многопоточными приложениями.

Я уверен, что большинство Android программистов знают #Rx подход по библиотеки RxJava, но она о Java 😞. Написали RxKotlin, но она является набором расширений для #RxJava и работает только c Kotlin/JVM.

В сообществе уже давно обсуждали написание Rx библиотеки на чистом Kotlin. Это бы дало:
👉 Поддержку работы на множестве платформ (Kotlin Multiplatform Projects)
👉 Учет системы типов Kotlin, а значит поддержку null safety
👉 Корректную поддержку Generic из Kotlin
👉 Убрать зависимости от каких либо сторонних Rx библиотек
👉 Сделать архитектуру и API с использованием всех возможностей языка Kotlin

Ребята из Badoo решили не ждать и написать решение сами. Встречайте библиотеку Reaktive. Библиотека пока находится в Alpha статусе (возможны изменения API) и разработка новых фичей продолжается.
👍1
#Coroutine

В последнее время я нахожу много материалов по Kotlin Coroutine. Думаю, что это связано с тем что Kotlin Coroutine активно пропагандируются командой Android для решения асинхронных задач и то что Flow - это способ решения задач для обработки потоков данных (замена RxJava). С одной стороны я понимаю, что пропаганда этого подхода - закономерный шаг при лозунге «Kotlin First» в Android. Но что там с альтернативами? На подходе RxJava 3, есть Reaktive - Rx на чистом Kotlin, возможно кто-то строит асинхронные запросы на основе стандартного API в Android SDK/JDK.

Не могу скрывать, что я и сам придерживаюсь подхода Kotlin Coroutine. Тяну ли я Coroutine в свои проекты - регулярно! Я люблю поделиться своим опытом или рассказать о результатах интересных исследований, поэтому выступаю с докладами, в рамках которых я имею возможность проводить краткие опросы. Результаты опроса «Используете ли вы Coroutine?» меня печалят - большая часть зала пользуется RxJava для асинхронных задач.

К чему я все это вёл - дайте свой фидбек почему так происходит и я постараюсь исправить ситуацию. Заказчика вашего переубедить я не смогу, но помочь с повышением уровня знаний - запросто.

Присоединяетесь к обсуждению в @android_broadcast_discussions
#Dagger #Hilt #Coroutine

Create an application CoroutineScope using Hilt

Руководство как доставлять в зависимостях CoroutineScope, привязанный к Application, и CoroutinDispatcher-s, а также их как подменять их в тестах
OkLayoutInflater - прокачанный AsyncLayoutInflter на корутинах. AsyncLayoutInflater позволяет перенести inflate layout ресурс в фоновые поток, тем самым разгрузив его от блокирующего вызова LayoutInflter.inflate на главном/UI потоке приложения. Авторы решили написать свою версию, добавив ей:
👉 Поддержка корутин
👉 Парсинг на нескольких фоновых потоках (AsyncLayoutInflater работает в одном фоновом потоке)
👉 Подружили с жизненным циклом
👉 Добавили поддержку  LayoutInflater.Factory2

Авторы добились уменьшения фризов до 30% на отдельных экранах и 23% в среднем

💻 Исходный код на GitHub

#coroutine
🤔42👍24🔥7😁1