Вы можете отлично делать инъекцию зависимостей без использования кинжала.Для этого есть множество фреймворков, но вы даже можете сделать это без фреймворка, делая все вручную.Вы можете (я сделал это) отлично написать приложение, используя методы DI, даже не используя каркас.
В kotlin вы можете прекрасно создать файл Utils.kt и вставить туда некоторые функции, ифункции будут доступны везде (также будет создан синглтон).
Мой совет: не усложняйте.
Если вы можете сделать это с чистым kotlin, и это не добавляет дополнительной сложности вашему приложению, то сделайте это.Если это затеняет или создаст беспорядок в вашей кодовой базе (или вы будете путать будущие кодеры, смешивая материалы и подходы), то не надо.
Дополнительно: Для объектов, когда вам необходимо напрямую контролироватьГрафик и т. д., есть много рамок на выбор.(Попробуйте Koin, действительно простой и друг Kotlin), вы можете использовать Dagger или некоторые из них, если ваше приложение действительно сложное.Но если вы можете позволить себе роскошь не использовать инфраструктуру DI и делать все самостоятельно, это будет намного лучше.
Я знаю, что не все согласятся с этой точкой зрения, но по моему опыту,Вот как это.