Комментарии 13
Спасибо за классную техническую статью - описание подходов к выявлению проблем и их решению зашли даже больше, чем сами решения (я не Android разработчик). Единственный вопрос, который возник после прочтения - что в итоге с пуфиками?
Спаисбо, интересная статья.
Вопрос почмеу у вас не работала инкрементальная сборка или 25 минут это процесс полного пересбора?
Можно ли написать DI библиотеку так, что бы она в debug резолвила зависимости в рантайме (как scout) , а в release во время компиляции (как dagger)?
Это решит проблему долгих сборок для разработчиков и в тоже время конечные пользователи не будут затронуты, так как каждый пользователь не будет платить за удобство разработчика
Не просто можно, это уже сделали ребята из Яндекс.Браузера (статья https://habr.com/ru/companies/yandex/articles/704838/). Мы пошли другим путем, API Dagger нас не устраивал :)
Работа титаническая. Manual di через делегаты не рассматривали как альтернативу даггеру?
В библиотеке есть поддержка инжектов в поля классов через делегаты, но публичный интерфейс доступа к графу все равно требует явной декларации (компонента). Для инжектов в поля в библиотеке есть тип Injector
, который является компонентом с единственным публичным методом
Как показано в докладе, можно получить валидацию графа в compile time написав не сильно больше кода, чем при использовании dagger без дополнительной кодогенерации. Мой вопрос был, не рассматривали ли вы такой подход, прежде чем окунуться в написание библиотеки?
Почему не стали делать библиотеку мультиплатформенной?
Как iOS разработчик вообще не понимаю любовь к даггеру. Когда делал свою DI либу я многие языки рассматривал и как у них реализованы DI либы... И даггер в списке был на последнем месте по удобству и понятности... В. Списке лучших оказался autofac из C#.
Это из той серии когда модный дизайнер сказал что эта одежда будет модой X года, и подумаешь она не удобная - зато модная.
За статью спасибо, ещё раз убедился, что не только мне dagger не нравится ?
Библиотека Scout — быстрый и безопасный DI на Kotlin