Всем привет! Меня зовут Евгений, и я — Android-разработчик.
Работая над очередным многомодульным проектом, я снова и снова сталкивался с неудобством и, не побоюсь этого слова, ужасом настройки Dependency Injection. И каждый раз я задавался одним и тем же вопросом: почему до сих пор не существует DI-фреймворка, который бы комфортно работал именно в многомодульной среде?
Так, чтобы каждый feature-модуль становился по-настоящему независимым.
“Но ведь есть Dagger!” — скажете вы. Да, есть. Но, на мой взгляд, он не делает модули по-настоящему независимыми. Чтобы все заработало, вам все равно нужно создавать компонент в главном :app модуле, который связывает все зависимости вместе. А это значит, что каждый feature-модуль неявно зависит от общей конфигурации и не является полностью автономным. (Сейчас я знаю, что у Dagger есть Subcomponents, а у Koin — изолированные Koin-инстансы! Но на момент ресерча я этого не нашёл.)