Size: a a a

2019 May 08

UH

Untamed Horse in RxPM
Простите, не удержался...
источник
2019 May 09

L

Leo in RxPM
😂
источник
2019 May 11

L

Leo in RxPM
Ребят, а вот если поговорить не о презентационном слое, а об архитектуре в целом: вы нашли для себя способ красиво пользоваться внедрением зависимостей? Прошу за оффтоп сильно не бить, просто тема покоя не даёт)
источник

MZ

Mikhail Zisman in RxPM
Привет, пользуюсь koin , передаю в конструктор в PM таким путем: bundle -> koin parametersOf -> конструктор PM
источник

MZ

Mikhail Zisman in RxPM
впрочем там вроде все очевидно, если надо могу рассказать поподробнее
источник

L

Leo in RxPM
Не напрягает, что на каждую мелочь надо идти и править коиновские модули?
источник

MZ

Mikhail Zisman in RxPM
Ага, напрягает
источник

L

Leo in RxPM
Ну вот, не особо красиво, значит)
источник

MZ

Mikhail Zisman in RxPM
Там помоему что-то в koin 2 завезли для решения этого, но времени нет проверить
источник

L

Leo in RxPM
Ага, рефлексию завезли))
источник

UH

Untamed Horse in RxPM
Использую Dagger 2. Для передачи аргументов экрана из бандла в PM удобно использовать assisted injections через библиотеку Вортана, но я делаю это через отдельный компонент для каждого экрана (потому что бесит костыльный @AssistedModule в этой либе). Для этого можно даже не создавать каждый раз модуль для компонента, а использовать @BindsInstance в компонентбилдере, тогда по количеству кода получается не сильно больше, чем с assisted injections.
источник

UH

Untamed Horse in RxPM
Выше описывал то, что кажется мне проблемой при использовании Scoped-зависимостей вместе с RxPM. А именно, из компонентов, которые пересоздаются во время использования приложения (т.е. все, что не из скоупа Singleton, которым обычно помечается AppComponent, который висит в инстансе Application). Хотя это проблема не столько DI-related, а скорее в целом проблема выдачи общих объектов нескольким ПМ-кам, когда эти объекты не синглтоны.
источник

UH

Untamed Horse in RxPM
В связи с этим просто стараюсь не скопать зависимости в компонентах, кроме AppComponent. Так довольно сильно упрощается использование DI.
источник

L

Leo in RxPM
А откуда берется инжектор внутри, скажем, фрагмента?
источник

UH

Untamed Horse in RxPM
Из Application. Я его не статическим делаю, а как обычное поле в Application. Инжектор это мой AppComponent.
источник

L

Leo in RxPM
Ну в таком случае фрагмент не получится вытащить в отдельный модуль
источник

UH

Untamed Horse in RxPM
Хм, окей, я еще не пробовал в своих проектах мультимодульность :[ Со следующего проекта планирую использовать, поэтому поисследую этот вопрос.
источник

L

Leo in RxPM
Я вот как раз перехожу и испытываю адскую боль
источник

UH

Untamed Horse in RxPM
Меня вот еще немного раздражает большое количество квалифаеров, когда всякие примитивы хочется передавать, например, из бандла. Было бы классно, если бы в даггере сделали поддержку котлиновских typealias. Еще как вариант оборачивать такие аргументы в отдельный класс для каждого фрагмента, но тоже вроде не всегда удобно.
источник

UH

Untamed Horse in RxPM
Но это уже какой-то флуд совсем ☺️
источник