Ты, я думаю, догадываешься, каким будет первый вопрос :)
Да, отличие от koin в том что у меня все построенно на "провайдерах". Т.е. инжектим мы тип, например просто интерфейс Test2, и чтобы его создать в Koin можно передать класс, в komodo-di же можно передать функцию, или конструктор - что одно и тоже:
Да, отличие от koin в том что у меня все построенно на "провайдерах". Т.е. инжектим мы тип, например просто интерфейс Test2, и чтобы его создать в Koin можно передать класс, в komodo-di же можно передать функцию, или конструктор - что одно и тоже:
а как там suspend fun работает? то есть, получение тоже всегда suspend?
Работать будет, но будет риск того, что условный onCreate, запрашивающий зависимость, будет вызван до того, как модуль асинхронную сборку закончит, если я, конечно, не гоню.
Вообще можно в теории использовать, по сути di модуль это suspend (Module, T) -> T, минимум магии. Только в runBlocking {} надо запихнуть чтобы дождался onCreate
В принципе при учёте, что все лайфсайкл ивенты что у активитей, что у сервисов зовутся в UI-потоке, runBlocking-ом однопоточным по идее ногу отстрелить не получится, даже если несколько компонентов будет инициализироваться. Так что это может и ок.
Вопрос актуален Надо включить локальный раннер JUnit 5 в учебный проект hyperskill/Idea Edu (Gradle)
Проблема воспроизводится на разных компах (win 10) Тесты, ассерты - включаются и работают (после того, как в опциях градла переключить раннер тестов на Idea)