Size: a a a

StartAndroid Ru Kotlin

2020 September 19

I

Ievgen in StartAndroid Ru Kotlin
Рустам я рекомендую вам почитать какие задачи решает DI в принципе SOLID. Дагер про это. А также глянуть паттерн обсервер про это лайв дата
источник

I

Ievgen in StartAndroid Ru Kotlin
Я думаю после этого все станет на свои места
источник

I

Ievgen in StartAndroid Ru Kotlin
Если нужен пример. То у вас есть машина. Есть разъемы под мотор. К вам можно поставить 10 разных моторов. Вы просто говорите дай мотор. И Дагер даст один из 10ти и вы не в курсе какой.
источник

I

Ievgen in StartAndroid Ru Kotlin
А лайв дата это про то что если повернули ключ в замке зажигания то нужно дать питание на стартер дать топлива и искру от свечей
источник

I

Ievgen in StartAndroid Ru Kotlin
Т.е. лайв дата слушает какое-то событие и даёт вам сигнал о его наступлении
источник

I

Ievgen in StartAndroid Ru Kotlin
Как то так. Надеюсь объяснил
источник

РП

Рустам Планирович... in StartAndroid Ru Kotlin
Теперь все почти встало на свои места. Спасибо Вам @IevgenBogatov
источник

I

Ievgen in StartAndroid Ru Kotlin
Не вопрос. Велкам
источник

РП

Рустам Планирович... in StartAndroid Ru Kotlin
А что нам мешает получить мотор с помощью livedata
источник

РП

Рустам Планирович... in StartAndroid Ru Kotlin
Ааа вроде допер. То есть dagger нам предоставляет данные по запросу, livedata же совершает какое либо действие только при соблюдении условия (или при наступлении какого либо события)
источник

I

Ievgen in StartAndroid Ru Kotlin
Идея в том что ДИ в какой-то мере про конфигурирование. Про создание и вызов конструктора вне объекта. В дагере вы сможете подменить объект который создается. Единственное условие лижбы он соответствовал интерфейсу. И дагер это про Compile time. Т.е. в момент сборки проекта определяются те или иные имплементации.
источник

I

Ievgen in StartAndroid Ru Kotlin
Рустам Планирович
Ааа вроде допер. То есть dagger нам предоставляет данные по запросу, livedata же совершает какое либо действие только при соблюдении условия (или при наступлении какого либо события)
Да. А лайв дата это то что работает в процессе функционирования програмы (Runtime) и позволяет реализовать событийное поведение.
источник

РП

Рустам Планирович... in StartAndroid Ru Kotlin
Ievgen
Да. А лайв дата это то что работает в процессе функционирования програмы (Runtime) и позволяет реализовать событийное поведение.
Вот теперь все на своих местах.
источник

I

Ievgen in StartAndroid Ru Kotlin
👍
источник

I

Ievgen in StartAndroid Ru Kotlin
Рустам Планирович
Ааа вроде допер. То есть dagger нам предоставляет данные по запросу, livedata же совершает какое либо действие только при соблюдении условия (или при наступлении какого либо события)
Тут важно что одно про Compile time, а другое - Runtime.
Dagger  просто подпихивает объекты везде где они используются на этапе их создания, это если в общем
источник

РП

Рустам Планирович... in StartAndroid Ru Kotlin
Dagger - на этапу компиляции предоставляет необходимые объекты.
LiveData - во время работы приложения.
источник

РП

Рустам Планирович... in StartAndroid Ru Kotlin
Верно?
источник

I

Ievgen in StartAndroid Ru Kotlin
Ну да. Там же дагер подкатом создает классы которые явно вызывают другие
источник

I

Ievgen in StartAndroid Ru Kotlin
Т.е. происходит кодогенерация графа зависимостей в момент сборки проекта
источник

I

Ievgen in StartAndroid Ru Kotlin
Простой пример.
class Clazz @inject constructor (a: A, b:B)
Даггер сюда подпихнет A и B инстансы. А как вы это сделаете через лайв дата? Никак)
источник