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
Разбор(9м) как под капотом работает Dagger, Koin, Hilt и как написать свой простой DI

#di #underthehood
21👍10👎6🔥5
Media is too big
VIEW IN TELEGRAM
📺 Обзор Kotlin Inject (27 мин) или как будет выглядеть Dagger на Kotlin Multiplatform

Обзор библиотеки Kotlin Inject - DI для KMP, API которого аналогично Dagger. В видео происходит демонстрация возможностей, сравнение с другими DI и личное мнение о том стоит ли использовать эту библиотеку в проде.

Видео доступно платным подписчикам на Boosty и через Tribute бота в Telegram

#видео #kmp #dagger #di #koin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍65
Вышел Koin Annotations 1.4.0 Stable
👉 Создание модулей на старте
👉 Поддержка WASM
👉 Поддержка Qualifier
👉 Поддержка object модулей
👉 Сканирование множества модулей для поиска объявление зависимостей
👉 Обновили документацию для KMP
👉 Улучшили валидацию объявлений во время компиляции
👉 Рефакторинг кодогенерации для KMP проектов для решения багов и улучшения скорости работы

#koin #di #wasm
👍152
Автор Koin поделился результатами замерами скорости работы Koin и Hilt. Для этого взяли оригинальную версию приложения Now In Android и собственную с миграцией на Koin.

Тест делался через простой замер времени от и до, автор намеренно отказался от Jetpack Benchmark, который обеспечивает прогрев и стабильность результатов. Такой подход у меня вызывает вопросы. Мне также было бы интересно увидеть замеры после оптимизации кода через R8

Результаты на картинке, подробности в статье, а дальше уже всё решать вам.

UPD В комментариях уже накопали как выкрутили замеры в пользу Koin

#di #koin #dagger #benchmark
👍202
Вышел Dagger 2.53 c breaking changes для Kotlin
👉 Все Binds теперь потребуют объявления с nullable типами
👉 Обязательно использование JvmSuppressWildcards в Multibinding Map для generic типа значения
👉 Binds методы теперь не могут использовать Scope, когда они делегирует @Produces имплементации
👉 Удалена поддержка Java 7

‼️ Ничего полезного в Dagger не добавляют уже давно, так что сидите на той версии что вас устраивает и работает.

#dagger #di
👍15🔥11🤯62
📹 Новый выпуск: всё о мобильной разработке за месяц!

В этом видео я собрал самые горячие новости и интересные события в мире Android 🤖 и Kotlin 🏝. Каждая новость — это шаг к тому, чтобы быть в тренде разработки. Не пропустите!

#AndroidBroadcast #Android #Kotlin #JetpackViewModel #Compose #DI #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18103🔥2🤯2
Вышел Dagger 2.54

Релиз который мы заслужили - переделки и багфиксы. Зачем вообще обновлять Dagger я не понимаю 😞

#dagger #di
🤯15👍9
🚀 Ускорение загрузки 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 #БазаЗнаний
1👍27🔥832