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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
📺 Kotlin Coroutines Flow. StateFlow. SharedFlow || Курс по корутинам #7 (20 мин)

Разбираемся с холодными потоками данных в корутинах - Flow, SharedFlow и StateFlow, а также особенностями их работы. В видео вас жду лайвкодинги (как вы и просили) ну а дальше будут отдельные видео по этой теме.

Весь курс сделан при поддержке компании Revolut. Все ролики можно найти здесь

#AndroidBroadcast #курс #coroutines
📺 Корутины в Android. Специальные API || Курс по корутинам #8 (8 мин)

Собираем все полученные знания, чтобы узнать как их адаптировать к Android разработке и какие специальные API сделали в Jetpack

Весь курс, который сделан при поддержке компании Revolut, можно найти здесь

#AndroidBroadcast #курс #coroutines
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Магия Dispatcher'ов и как сделать свой Main

Разбор работы CoroutineDispatcher в корутинах, а главное как работает Dispatchers.Main в Android

#coroutines #android
Consuming flows safely in Jetpack Compose (5 мин)

В статье разбирается как подписываться на Flow из Compose с учетом ЖЦ в Android. Для этого служит новое API - collectAsStateWithLifecycle (доступно альфа версии Lifecycle 2.6.0), которое под капотом использует repeatOnLifecycle. Новое API рекомендуется на замену collectAsState в большинстве случаев.

#compose #coroutines
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Exploring "select" expression of Kotlin coroutines

select - это специальная функция, которая дожидается результата нескольких suspend функций и возвращает результат первой выполнившейся. В статье разбираются ее подробности и применение

В комментариях пишите примеры использования такой функции на практике

#coroutines
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Вышел Coil 2.6.0:
👉 Оптимизации для лучшей работы с Compose
🛠️ Исправление багов
👉 Kotlin 1.9.22 и обновление других зависимостей

#coroutines #library
Статья (EN, 8 мин) с разбором API для запуска Kotlin Coroutines в Android приложении в связке с жизненным циклом

🔗 Ссылка без VPN

#coroutines
Сравнение (EN,15м) выполнения операций в Android через Executor, RxJava, Coroutines и Flow. В тесте провели замер скорост через Jetpack Microbenchmark 3 операций:

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

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

#производительность #coroutines #rxjava
Довольно большой и подробный рассказ про остановку Coroutine в Kotlin. Рекомендую всем почитать, чтобы лучше понимать как отменить корутину и как это работает с CoroutineScope

#coroutines
Интересная статья (36м) с разбором как под капотом работают Kotlin Coroutine, что позволит вам развеять магию вокруг работы. Много полезного можете найти в канале автора @android_under_the_hood

#coroutines
Advanced Kotlin Coroutine Cheat sheet (EN, 8М) - статья для Android разработчиков по основным понятиям Kotlin Coroutines

#coroutines #android
Есть полезная Jetpack библиотека lifecycle-process, которая предоставляет Lifecycle, связанные с процессом вашего приложения (Application класс).

В статье(EN,7м) рассказывается как делают её интеграцию с корутинами и применяют в проекте

#jetpack #coroutines #lifecycle
Вышла библиотека KotlinX Coroutines 1.9.0
👩‍💻 Поддержка Wasm/WASI таргета
👉 limitedParallelism() позволяет задать имя Dispatcher для упрощения дебага. Также это стало стабильным API
👉 JVM. Dispatchers.IO больше не инициализируется при доступе к любому из стандартных Dispatcher
👉 Оператор Flow<T>.chunked(size: Int): Flow<List<T>>
Еще больше deprecated API в BroadcastChannel
🛠 Исправление багов и улучшения

#coroutines #wasm #flow
Please open Telegram to view this post
VIEW IN TELEGRAM
Разбор(4м) способов синхронизации доступа к переменной на примере инкремента int из разных корутин

#coroutines
🚀 Ускорение загрузки Koin при запуске Android приложения (EN,8м)

В Koin 4 добавили интеграцию с Jetpack Startup для запуска инициализации Koin

class MainApplication : Application(), KoinStartup {

override fun onKoinStartup(): KoinAppDeclaration = {
androidContext(this@MainApplication)
allowOverride(false)
modules(AppModule().module)
defaultModule()
}
}


и доступна инициализация фича модулей

// Initializer из Jetpack Startup
class FirstModuleInitializer : Initializer<Unit> {
override fun create(context: Context) {
loadKoinModules(firstModule)
}

override fun dependencies() =
mutableListOf(KoinInitializer::class.java)
}


Также показывается отложення загрузка модулей с помощью корутин

val m1 = lazyModule {
singleOf(::ClassA) { bind<IClassA>() }
}

startKoin {
// загрузка модулей в фоне с помощью Kotlin Coroutines
lazyModules(m1)
}

val koin = KoinPlatform.getKoin()

// Ожидания выполнения задач загрузки модулей
koin.waitAllStartJobs()

// или ставим в очередь лямбду на выполнение после
koin.runOnKoinStarted { koin ->
// Код выполнится после загрузки lazy modules
}


Подробнее про ленивые модули и фоновую загрузку в документации

#android #koin #di #jetpack #производительность #coroutines #AndroidBroadcast #БазаЗнаний
🏝 Как работает отмена Kotlin Coroutines под капотом (24м)

Подробная статья о том, что происходит при вызове функции cancel() - отмене корутине, а именно рассказывается про:
👉 Классы Job и JobSupport
👉 Состояния Job
👉 Как работает отмена в Structured Concurrency
👉 Коммуникация между родительской и дочерней Job
👉 Как отменяется функция delay()
👉 Как отменяются suspend функции

#kotlin #coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
🏝 Управление событиями в ViewModel с помощью StateFlow, SharedFlow и Channel (6м)

В статье описывается, что выбрать StateFlow, SharedFlow или Channel для работы с событиями в ViewModel

#android #coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
📹 Непростые вопросы про Kotlin Coroutines, Александр Гирев (40м)

Однажды пятничным вечером Александр и его коллега задумались над вопросом: где живут корутины, когда запустивший их coroutineScope героически погибает в жерновах GC? Субботнее утро было проведено за чтением статей и исходников.

Вот так и родилась идея доклада. В нем — ответы на вопросы об устройстве и работе корутин для самых любознательных.

📹 Версия на VK Video

#kotlin #coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM