Size: a a a

Kotlin Community

2020 December 22

RI

Ruslan Ibragimov in Kotlin Community
Andrew Mikhaylov
Ты, я думаю, догадываешься, каким будет первый вопрос :)
Да, отличие от koin в том что у меня все построенно на "провайдерах". Т.е. инжектим мы тип, например просто интерфейс Test2, и чтобы его создать в Koin можно передать класс, в komodo-di же можно передать функцию, или конструктор - что одно и тоже:
источник

OY

Oleg Yukhnevich in Kotlin Community
Ruslan Ibragimov
Да, отличие от koin в том что у меня все построенно на "провайдерах". Т.е. инжектим мы тип, например просто интерфейс Test2, и чтобы его создать в Koin можно передать класс, в komodo-di же можно передать функцию, или конструктор - что одно и тоже:
а как там suspend fun работает?
то есть, получение тоже всегда suspend?
источник

RI

Ruslan Ibragimov in Kotlin Community
Alexander Nozik
Похоже на то, что я в DataForge сделал. Только я не очень понял, где вызов
Поверх DI я делаю обертку-фреймворк, куда часть функциональности завернута. Входная точка вот тут.
источник

RI

Ruslan Ibragimov in Kotlin Community
Oleg Yukhnevich
а как там suspend fun работает?
то есть, получение тоже всегда suspend?
Да, потому что провайдеры могут быть suspend
источник

RI

Ruslan Ibragimov in Kotlin Community
Ruslan Ibragimov
Да, потому что провайдеры могут быть suspend
Что тоже отличие от koin
источник

AM

Andrew Mikhaylov in Kotlin Community
Ruslan Ibragimov
Поверх DI я делаю обертку-фреймворк, куда часть функциональности завернута. Входная точка вот тут.
Ага, андроид, похоже, мимо. :>
Я понимаю, что он вряд ли одной из целей есть)
источник

RI

Ruslan Ibragimov in Kotlin Community
Andrew Mikhaylov
Ага, андроид, похоже, мимо. :>
Я понимаю, что он вряд ли одной из целей есть)
Вообще будет работать, там даже reflection-full не понадобился, хотя пока он есть в зависимостях)
источник

RI

Ruslan Ibragimov in Kotlin Community
Все тяжелое делается компилятором (через typeOf)
источник

AM

Andrew Mikhaylov in Kotlin Community
Работать будет, но будет риск того, что условный onCreate, запрашивающий зависимость, будет вызван до того, как модуль асинхронную сборку закончит, если я, конечно, не гоню.
источник

RI

Ruslan Ibragimov in Kotlin Community
А, ну про такие материи я конечно не думал 🙂
источник

AM

Andrew Mikhaylov in Kotlin Community
Ну мне кроме андроида не приходит в голову ничего ходового, где не было бы управления созданием компонентов с внешним лайфсайклом.
источник

AM

Andrew Mikhaylov in Kotlin Community
Так что не удивительно)
источник

RI

Ruslan Ibragimov in Kotlin Community
Вообще можно в теории использовать, по сути di модуль это suspend (Module, T) -> T, минимум магии. Только в runBlocking {} надо запихнуть чтобы дождался onCreate
источник

RI

Ruslan Ibragimov in Kotlin Community
Весь внутренний стейт дропается после резолва дерева и доставания зависимости
источник

AM

Andrew Mikhaylov in Kotlin Community
В принципе при учёте, что все лайфсайкл ивенты что у активитей, что у сервисов зовутся в UI-потоке, runBlocking-ом однопоточным по идее ногу отстрелить не получится, даже если несколько компонентов будет инициализироваться. Так что это может и ок.
источник

L

LevT in Kotlin Community
LevT
Вопрос актуален
Надо включить локальный раннер JUnit 5 в учебный проект hyperskill/Idea Edu (Gradle)

Проблема воспроизводится на разных компах (win 10)
Тесты, ассерты - включаются и работают (после того, как в опциях градла переключить раннер тестов на Idea)

Executable остаётся красным
Победил.
Правильный импорт org.junit.jupiter.api.function.Executable
источник

AL

Alexander Levin in Kotlin Community
LevT
Победил.
Правильный импорт org.junit.jupiter.api.function.Executable
Вообще если я ничего не путаю, то вроде просто работало писать лямбды, не указывая, что это Executable
источник

AL

Alexander Levin in Kotlin Community
Alexander Levin
Вообще если я ничего не путаю, то вроде просто работало писать лямбды, не указывая, что это Executable
Условно:

assertAll(
   { ... },
   { ... },
   { ... }
)
источник

RK

Rasul Kamolov in Kotlin Community
can I use Kotlin KMM on windows?
источник

RK

Rasul Kamolov in Kotlin Community
источник