#Jetpack #Fragment #Koin
Benefit from AndroidX FragmentFactory with Koin
Если вы еще не используете конструкторы Fragment с параметрами, то вам стоит присмотреться к FragmentFactory.
Популярный DI Koin в версии 2.1 добавил поддержку inject зависимостей в конструкторы Fragment, используя это API. Все подробности в статье.
Benefit from AndroidX FragmentFactory with Koin
Если вы еще не используете конструкторы Fragment с параметрами, то вам стоит присмотреться к FragmentFactory.
Популярный DI Koin в версии 2.1 добавил поддержку inject зависимостей в конструкторы Fragment, используя это API. Все подробности в статье.
Medium
Benefit from AndroidX FragmentFactory with Koin
Implementing custom FragmentFactory powered by Koin DI
#Dagger #Hilt #Koin
Change DI Library from Koin to Dagger-Hilt
Разработчики кто имеет опыт с Dagger сразу хорошо воспринимали Koin в плане удобства его синтаксиса, но всех огорчало что отсутствует некоторые возможности, особенно проверка графа во время компиляции.
Может ли Hilt стать тем что все так разработчики хотели? Скорее всего только в описание компонентов, ведь под капотом мы имеем старый Dagger
В статье приводится опыт миграции с Koin на Hilt
Change DI Library from Koin to Dagger-Hilt
Разработчики кто имеет опыт с Dagger сразу хорошо воспринимали Koin в плане удобства его синтаксиса, но всех огорчало что отсутствует некоторые возможности, особенно проверка графа во время компиляции.
Может ли Hilt стать тем что все так разработчики хотели? Скорее всего только в описание компонентов, ведь под капотом мы имеем старый Dagger
В статье приводится опыт миграции с Koin на Hilt
Medium
Change DI Library from Koin to Dagger-Hilt
M y first Android DI library was Koin. Dagger had a high running curve at the beginning and it was difficult to learn, and at that time, I…
#Koin #DependencyInjection
What’s next with Koin? — 2.2 & 3.0 releases
Koin - одно из популярных решений для DI для проектов на Kotlin. По сравнению с Dagger он убрал долгую компиляцию, упростил объявление зависимостей, но потерял проверку графа во время компиляции.
Совсем скоро выйдет релиз 2.2 этой библиотеки в которой будет:
👉
👉 Поддержка
👉 Поддержка Jetpack Compose
👉 Более простой способ описания Android Scope-ов
👉 Проведены работы под капотом: создать объект Koin Context становится проще
👉 Возможность положить параметр, который inject-ится в зависимость, в граф. По аналогии с
👉 Поддержка JUnit 5
В Koin 3.0 нас ждет поддержка Kotlin Multiplatform
What’s next with Koin? — 2.2 & 3.0 releases
Koin - одно из популярных решений для DI для проектов на Kotlin. По сравнению с Dagger он убрал долгую компиляцию, упростил объявление зависимостей, но потерял проверку графа во время компиляции.
Совсем скоро выйдет релиз 2.2 этой библиотеки в которой будет:
👉
stateViewModel()
и viewModel()
буду заменены на viewModel()
👉 Поддержка
WorkManager
👉 Поддержка Jetpack Compose
👉 Более простой способ описания Android Scope-ов
👉 Проведены работы под капотом: создать объект Koin Context становится проще
👉 Возможность положить параметр, который inject-ится в зависимость, в граф. По аналогии с
StateHandleBundle
👉 Поддержка JUnit 5
В Koin 3.0 нас ждет поддержка Kotlin Multiplatform
Medium
What’s next with Koin? — 2.2 & 3.0 releases
Hi Koin users 👋, Koin 2.2.0 is almost there. This new milestone brings better stability, some API rework and also, helps you inject Work…
#Dagger #Koin #Hilt
How Dagger, Hilt and Koin differ under the hood?
Сравнение подкапотной работы популярнейших решений для DI на Android, а также их преимуществ и производительности
How Dagger, Hilt and Koin differ under the hood?
Сравнение подкапотной работы популярнейших решений для DI на Android, а также их преимуществ и производительности
#DI #Koin
Understanding Android Scopes with Koin
Разбор Scope в Koin:
👉 Что это такое
👉 Какие Scope есть в Koin Android
👉 Как работать со Scope
Пост является своеобразным ответом на статью про Scope в Dagger Hilt
Understanding Android Scopes with Koin
Разбор Scope в Koin:
👉 Что это такое
👉 Какие Scope есть в Koin Android
👉 Как работать со Scope
Пост является своеобразным ответом на статью про Scope в Dagger Hilt
#DI #Koin
Koin — 3.0.1 Release & 2.x Redeploy
Вышла новая версия Koin для KMM в связи с чем произошло изменение именования артефактов, теперь поддерживается только AndroidX и можно работать с Jetpack Compose
Koin — 3.0.1 Release & 2.x Redeploy
Вышла новая версия Koin для KMM в связи с чем произошло изменение именования артефактов, теперь поддерживается только AndroidX и можно работать с Jetpack Compose
#AndroidBroadcast #Koin #Dagger
📺 Почему я вернулся на Dagger. Пока Koin (11 мин)
Я пользовался Koin и агитировал за него, но вернулся на Dagger и рад этому. Почему? Всё в видео. Смотрите!
💰 Поддержать проект на Boosty или Patreon
📺 Почему я вернулся на Dagger. Пока Koin (11 мин)
Я пользовался Koin и агитировал за него, но вернулся на Dagger и рад этому. Почему? Всё в видео. Смотрите!
💰 Поддержать проект на Boosty или Patreon
Forwarded from Kotlin Multiplatform Broadcast
Вышло обновление Koin Annotations 1.4
👉 Поддержка сканирования модулей сквозь Gradle модули. Раньше каждый работал отдельно
👉 Поддержка ViewModel в Compose с помощью аннотации @KoinViewModel
👉 Поддержка expect зависимостей из общего кода
👉 Объявление значений Koin Property через top level property в коде
👉 Улучшения проверки графа в момент компиляции кода
👉 Поддержка Kotlin WASM
👉 Поддержка модулей в object
👉 Поддержка Koin Type Qualifier
Пример с использованием свежей версии можно найти тут
Могу добавить что вот такое решение и сразу надо было нужно делать для DI на KMP, а не так много динамики давать. Объявление зависимостей в рантайме нужно не так много кому, зато можно повысить надежность работы с кодом.
Видео на тему косяков Koin я тоже уже готовлю 😁
#koin #di #ksp
👉 Поддержка сканирования модулей сквозь Gradle модули. Раньше каждый работал отдельно
👉 Поддержка ViewModel в Compose с помощью аннотации @KoinViewModel
👉 Поддержка expect зависимостей из общего кода
👉 Объявление значений Koin Property через top level property в коде
👉 Улучшения проверки графа в момент компиляции кода
👉 Поддержка Kotlin WASM
👉 Поддержка модулей в object
👉 Поддержка Koin Type Qualifier
Пример с использованием свежей версии можно найти тут
Могу добавить что вот такое решение и сразу надо было нужно делать для DI на KMP, а не так много динамики давать. Объявление зависимостей в рантайме нужно не так много кому, зато можно повысить надежность работы с кодом.
Видео на тему косяков Koin я тоже уже готовлю 😁
#koin #di #ksp
👍29👎12😡1
Forwarded from Kotlin Multiplatform Broadcast
Нашел Cheat Sheet от Kotzilla и инструкцию по миграции с Dagger/Hilt. на Koin (можно использовать в KMP проектах)
Чтобы вам не регаться я нашел прямую ссылку
#koin #hilt #android #di
Чтобы вам не регаться я нашел прямую ссылку
#koin #hilt #android #di
👍33👎3🔥1
Media is too big
VIEW IN TELEGRAM
Я использую Koin еще с самой первой версии, он неплохо справляется с небольшими проектами, но дальше требует работы как самурай. В видео для патронов рассказываю, что не так с Koin, как этого избегаю и какой DI нужен для KMP.
Видео доступно на Boosty и по подписке в Telegram.
#AndroidBroadcast #koin #di #kmp #android
Please open Telegram to view this post
VIEW IN TELEGRAM
👎35👍32🔥1
Forwarded from Kotlin Multiplatform Broadcast
Вышел Koin 4.0
👉 Переехали на Kotlin 2.0.20
👉 Поддержка KMP в ViewModel модуле
👉 Интеграция с AndroidX Startup что дает ускоряет запуска до 40%
👉 Больше возможностей в Compose Multiplatform
👉 Улучшение тестового API
👉 Удалили Deprecated и старое API (походу опять всё развалят)
🚀 Ускорили работу библиотеки под капотом
#koin #kmp #compose #android
👉 Переехали на Kotlin 2.0.20
👉 Поддержка KMP в ViewModel модуле
👉 Интеграция с AndroidX Startup что дает ускоряет запуска до 40%
👉 Больше возможностей в Compose Multiplatform
👉 Улучшение тестового API
👉 Удалили Deprecated и старое API (походу опять всё развалят)
🚀 Ускорили работу библиотеки под капотом
#koin #kmp #compose #android
👍36
С выходом новой версии Koin хочу напомнить вам про его боли и проблемы, которые он несет за собой. Смотрите видео
Telegram
Android Broadcast
📱 За что я ненавижу Koin или чего стоит избегать при его использовании (12 мин)
Я использую Koin еще с самой первой версии, он неплохо справляется с небольшими проектами, но дальше требует работы как самурай. В видео для патронов рассказываю, что не так…
Я использую Koin еще с самой первой версии, он неплохо справляется с небольшими проектами, но дальше требует работы как самурай. В видео для патронов рассказываю, что не так…
👍10 7
Media is too big
VIEW IN TELEGRAM
Обзор библиотеки Kotlin Inject - DI для KMP, API которого аналогично Dagger. В видео происходит демонстрация возможностей, сравнение с другими DI и личное мнение о том стоит ли использовать эту библиотеку в проде.
Видео доступно платным подписчикам на Boosty и через Tribute бота в Telegram
#видео #kmp #dagger #di #koin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍6 5
Forwarded from Kotlin Multiplatform Broadcast
Вышел Koin Annotations 1.4.0 Stable
👉 Создание модулей на старте
👉 Поддержка WASM
👉 Поддержка Qualifier
👉 Поддержка object модулей
👉 Сканирование множества модулей для поиска объявление зависимостей
👉 Обновили документацию для KMP
👉 Улучшили валидацию объявлений во время компиляции
👉 Рефакторинг кодогенерации для KMP проектов для решения багов и улучшения скорости работы
#koin #di #wasm
👉 Создание модулей на старте
👉 Поддержка WASM
👉 Поддержка Qualifier
👉 Поддержка object модулей
👉 Сканирование множества модулей для поиска объявление зависимостей
👉 Обновили документацию для KMP
👉 Улучшили валидацию объявлений во время компиляции
👉 Рефакторинг кодогенерации для KMP проектов для решения багов и улучшения скорости работы
#koin #di #wasm
👍15❤1
#koin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥6 3
Автор Koin поделился результатами замерами скорости работы Koin и Hilt. Для этого взяли оригинальную версию приложения Now In Android и собственную с миграцией на Koin.
Тест делался через простой замер времени от и до, автор намеренно отказался от Jetpack Benchmark, который обеспечивает прогрев и стабильность результатов. Такой подход у меня вызывает вопросы. Мне также было бы интересно увидеть замеры после оптимизации кода через R8
Результаты на картинке, подробности в статье, а дальше уже всё решать вам.
UPD В комментариях уже накопали как выкрутили замеры в пользу Koin
#di #koin #dagger #benchmark
Тест делался через простой замер времени от и до, автор намеренно отказался от Jetpack Benchmark, который обеспечивает прогрев и стабильность результатов. Такой подход у меня вызывает вопросы. Мне также было бы интересно увидеть замеры после оптимизации кода через R8
Результаты на картинке, подробности в статье, а дальше уже всё решать вам.
UPD В комментариях уже накопали как выкрутили замеры в пользу Koin
#di #koin #dagger #benchmark
👍19 2
🚀 Ускорение загрузки Koin при запуске Android приложения (EN,8м)
В Koin 4 добавили интеграцию с Jetpack Startup для запуска инициализации Koin
и доступна инициализация фича модулей
Также показывается отложення загрузка модулей с помощью корутин
Подробнее про ленивые модули и фоновую загрузку в документации
#android #koin #di #jetpack #производительность #coroutines #AndroidBroadcast #БазаЗнаний
В 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👍26🔥8 3❤2
Forwarded from Kotlin Multiplatform Broadcast
Проблема с валидацией DI графа зависимостей при использования Koin - очень актуальная. Авторы решили подойти к её решению через анализ кода проектов в IDE, хотя уже обсуждали перенос инструмента в CLI.
Для использования вам понадобится зарегистрироваться на сайте Kotzilla.
#kotlin #idea #koin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27👍6🤯6👎5
Forwarded from Kotlin Multiplatform Broadcast
Koin Annotations — надстройка над Koin для описания зависимостей с помощью аннотаций и последующей генерации части графа для них.
Что нового в движке:
👉 Совместимость с KSP2
👉 Улучшена работа компилятора DI кода
👉 Улучшена генерация кода
👉 Полноценная поддержка KMP проектов
👉 Шаринг описаний зависимостей между модулями проектов
👉 Работает с Koin 4.0, Kotlin 2.0.21 и KSP 2.0.21-1.0.28
Новые фичи для разработчиков:
👉 Создание собственных аннотаций квалификаторов
👉 Автоматические биндинги
👉 ComponentScan работает сквозь Gradle модули
👉 Аннотации над ViewModel (работает с Jetpack и KMP)
@KoinViewModel
class MyViewModel(deps: Deps): ViewModel()
Ссылка без VPN
#kotlin #kmp #di #koin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👎7👍5❤1
Forwarded from Kotlin Multiplatform Broadcast
Поддержите Koin IDE плагин на Product Hunt. Команда проделывают большую работу и точно заслуживает поддержки от сообщества!
#kotlin #koin #ide #androidstudio
#kotlin #koin #ide #androidstudio
👍38👎15