Size: a a a

2020 May 11

I

Ilnar in Dagger 2
Андрей
Можно токен сохранить в префы, например, и при каждом вызове интерсептора сначала считывать новый токен и новый уже будет использоваться в запросах.
Да, тоже видел такой подход. Хотел обойтись без этого) Но, наверное так и сделаю
источник
2020 May 15

АЕ

Алексей Ершов... in Dagger 2
А вот смотрите какой случай для DI.
Есть у меня объект, у которого 2 вида зависимостей. Одни как бы "глобальные", типа нужные ему штуки для работы. Они вряд ли изменятся, сколько бы я инстансов этого объекта не создавал. А другие как бы локальные - коллбеки, например.

И вот я хочу создать инстанс этого объекта. Я не могу его полностью заинжектить, потому что коллбеки прям в месте создания хочу подставлять ручками.

Напрашивается создать для него фабрику, в которую заинжектить глобальные зависимости, а в фабричный метод создания объекта передавать только локальные.

Вопрос: это делается даггером как-то красивее, чем руками писать эту фабрику?
источник

AL

Aleksandr Litvinchuc... in Dagger 2
Звучит как скоуп в котором зависимость провайдиться в зависимости от места
источник

AL

Aleksandr Litvinchuc... in Dagger 2
Если речь идёт о том что глобальная зависимость это что-то вроде контекста, а локальная это что-то вроде делегата роутера, то так точно сделать можно
источник

SV

Sergey Vasilchenko in Dagger 2
Алексей Ершов
А вот смотрите какой случай для DI.
Есть у меня объект, у которого 2 вида зависимостей. Одни как бы "глобальные", типа нужные ему штуки для работы. Они вряд ли изменятся, сколько бы я инстансов этого объекта не создавал. А другие как бы локальные - коллбеки, например.

И вот я хочу создать инстанс этого объекта. Я не могу его полностью заинжектить, потому что коллбеки прям в месте создания хочу подставлять ручками.

Напрашивается создать для него фабрику, в которую заинжектить глобальные зависимости, а в фабричный метод создания объекта передавать только локальные.

Вопрос: это делается даггером как-то красивее, чем руками писать эту фабрику?
звучит как AssistedInject
источник

АЕ

Алексей Ершов... in Dagger 2
я эти локальные зависимости даже в граф не хочу пихать, а просто руками их в месте создания инстанса подставлять
источник

АЕ

Алексей Ершов... in Dagger 2
почитаю про ассистед, буду рад если накинете ссылочек где что-то подобное сделано, или просто хороший разбор.
источник
2020 May 18

А

Александр in Dagger 2
Алексей Ершов
А вот смотрите какой случай для DI.
Есть у меня объект, у которого 2 вида зависимостей. Одни как бы "глобальные", типа нужные ему штуки для работы. Они вряд ли изменятся, сколько бы я инстансов этого объекта не создавал. А другие как бы локальные - коллбеки, например.

И вот я хочу создать инстанс этого объекта. Я не могу его полностью заинжектить, потому что коллбеки прям в месте создания хочу подставлять ручками.

Напрашивается создать для него фабрику, в которую заинжектить глобальные зависимости, а в фабричный метод создания объекта передавать только локальные.

Вопрос: это делается даггером как-то красивее, чем руками писать эту фабрику?
Алексей, тебе удалось?

Я спрашиваю потому что изучаю андроид и мне очень интересно что ты такое пишешь. Можешь в терминах андроид  в целом рассказать что это за фабрика такая у тебя? Хочу представить задачу
источник

АЕ

Алексей Ершов... in Dagger 2
Александр
Алексей, тебе удалось?

Я спрашиваю потому что изучаю андроид и мне очень интересно что ты такое пишешь. Можешь в терминах андроид  в целом рассказать что это за фабрика такая у тебя? Хочу представить задачу
Пока не доделал, но выглядит действительно как классический кейс для AssistedInject. Когда сделаю и буду доволен, поделюсь опытом, возможно в виде статьи) Распишу зачем мне это было нужно и чего удалось достичь.
источник

D

Dmitriy in Dagger 2
Алексей Ершов
Пока не доделал, но выглядит действительно как классический кейс для AssistedInject. Когда сделаю и буду доволен, поделюсь опытом, возможно в виде статьи) Распишу зачем мне это было нужно и чего удалось достичь.
хотелось бы тоже узнать потом)
источник

SV

Sergey Vasilchenko in Dagger 2
про ассистед инжект и фабрики можете от вортона посмотреть доклад кому интересно 😊 Helping Dagger help you называется
источник

АЕ

Алексей Ершов... in Dagger 2
да, отличнейший доклад
источник

АЕ

Алексей Ершов... in Dagger 2
источник
2020 May 20

I

Ilnar in Dagger 2
Есть фрагмент, а в нем во ViewPager еще несколько фрагментов (ChildFragment).
При клики в основном фрагменте происходит действие и изменяется LiveData вo ViewMоdel, результаты которого нужны в основном фрагменте и в childFragment.

В основной фрагмент инжекчу ViewModel через даггер, хотел и в childFragment эту ViewModel зафигачить, но:
1) Не знаю как это правильно сделать (в случае с даггер)
2) Получается какое то Г)

Что бы вы посоветовали?


Вот так провайдю ViewModel

@Module
abstract class MapFragmentModule {
   @Module
   companion object {
       @FragmentScope
       @JvmStatic
       @Provides
       fun provideMapViewModel(mapFragment: MapFragment, objectsInteractor: ObjectsInteractor, positionMarkerMapper: MotionToMarkerMapper): MapViewModel {
           return ViewModelProvider(mapFragment, MapViewModelFactory(objectsInteractor = objectsInteractor, positionMarkerMapper = positionMarkerMapper)).get(MapViewModel::class.java)
       }
   }
}
источник

K

Kirill in Dagger 2
Ilnar
Есть фрагмент, а в нем во ViewPager еще несколько фрагментов (ChildFragment).
При клики в основном фрагменте происходит действие и изменяется LiveData вo ViewMоdel, результаты которого нужны в основном фрагменте и в childFragment.

В основной фрагмент инжекчу ViewModel через даггер, хотел и в childFragment эту ViewModel зафигачить, но:
1) Не знаю как это правильно сделать (в случае с даггер)
2) Получается какое то Г)

Что бы вы посоветовали?


Вот так провайдю ViewModel

@Module
abstract class MapFragmentModule {
   @Module
   companion object {
       @FragmentScope
       @JvmStatic
       @Provides
       fun provideMapViewModel(mapFragment: MapFragment, objectsInteractor: ObjectsInteractor, positionMarkerMapper: MotionToMarkerMapper): MapViewModel {
           return ViewModelProvider(mapFragment, MapViewModelFactory(objectsInteractor = objectsInteractor, positionMarkerMapper = positionMarkerMapper)).get(MapViewModel::class.java)
       }
   }
}
Погугли sharedviewmodel
это можно без даггера сделать
источник

I

Ilnar in Dagger 2
Kirill
Погугли sharedviewmodel
это можно без даггера сделать
ок, спс
источник

I

Ilnar in Dagger 2
Kirill
Погугли sharedviewmodel
это можно без даггера сделать
 override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
       super.onViewCreated(view, savedInstanceState)
       Log.d(TAG, "onCreated")

       parentFragment?.let {
           viewModel = ViewModelProvider(it).get(MapViewModel::class.java)
       }

       viewModel?.mainObject()?.observe(viewLifecycleOwner, Observer {
           Log.d("TestCase", "test -> ${it.gObject.id}")
       })
   }


Сделал так, вывести в даггер тоже нет проблем)
источник
2020 May 24

V

Vlad in Dagger 2
Добрый день, изучаю и использую библиотеку совсем немного
Я реализовал несколько модулей для отправки запросов на сервер через Retrofit.
В конечном итоге все эти зависимости на уровне приложения я использую внутри фрагмента
источник

V

Vlad in Dagger 2
источник

V

Vlad in Dagger 2
Но я хочу отделить отправку запроса от фрагмента. Отправлять его из другого класса. Для этого мне нужен контекст. Как мне получить его используя dagger?
источник