Size: a a a

Android Architecture

2020 September 23

RC

Roman Chumachenko in Android Architecture
Aleksey D.
ну эт проблема контейнера
такие штуки можно в модуле спрятать
На счёт прятать в модуле, предлагаешь сделать provide-метод, который будет получать named интерфейс и возвращать, как обычный?
источник

KD

Konstantin Dovnar in Android Architecture
Roman Chumachenko
А кто не даёт все зависимости через конструктор провайдить?)
Слои абсолютно не меняются
Провайдив через конструктор ты тоже используешь DI.
источник

RC

Roman Chumachenko in Android Architecture
Konstantin Dovnar
Провайдив через конструктор ты тоже используешь DI.
Не обязательно, я могу руками туда сложить всё
источник

ES

Egor Sigolaev in Android Architecture
Roman Chumachenko
Не обязательно, я могу руками туда сложить всё
Зачем? Смысл di теряется
источник

KD

Konstantin Dovnar in Android Architecture
Roman Chumachenko
Не обязательно, я могу руками туда сложить всё
class A(val dep: Dependency)

fun main() {
   val dep = DependencyImpl()
   val a = A(dep)
}


Это всё ещё DI.
Ты предоставляешь зависимости из вне.
источник

RC

Roman Chumachenko in Android Architecture
Egor Sigolaev
Зачем? Смысл di теряется
Так о том и соль, что жить можно по клину и без di
источник

ES

Egor Sigolaev in Android Architecture
Roman Chumachenko
Так о том и соль, что жить можно по клину и без di
Ну можно, удачи. Можно и не юзать ретрофит с окхттп)
источник

ES

Egor Sigolaev in Android Architecture
А еще запросы на колбеках делать)
источник

P

Pavel in Android Architecture
Драфт статейки бывшего коллеги по теме:
@Phansier
https://docs.google.com/document/d/1kOaHwPZl1klDgb87h4BPt_5MP1Auy8HrmJespCqjDrs/edit?usp=sharing
источник

RC

Roman Chumachenko in Android Architecture
Konstantin Dovnar
class A(val dep: Dependency)

fun main() {
   val dep = DependencyImpl()
   val a = A(dep)
}


Это всё ещё DI.
Ты предоставляешь зависимости из вне.
DI - это ещё и в поля инъекции, и в методы, да. Не верно выражаюсь наверное, можно писать по клину без di-библиотек
источник

RC

Roman Chumachenko in Android Architecture
Egor Sigolaev
Ну можно, удачи. Можно и не юзать ретрофит с окхттп)
Так, не, давай по делу. Di-либы ломают солид, а писать самопальные штуки - это другое
источник

RC

Roman Chumachenko in Android Architecture
Спасибо, гляну)
источник

AD

Aleksey D. in Android Architecture
Roman Chumachenko
На счёт прятать в модуле, предлагаешь сделать provide-метод, который будет получать named интерфейс и возвращать, как обычный?
да, вариант
источник

RC

Roman Chumachenko in Android Architecture
Aleksey D.
да, вариант
Думал о чем-то подобном раньше, это не будет работать. Ты запросил конкретную реализацию, снял с нее эту пометку "конкретная реализация А" и отправил дальше. Опять же, не выйдет теперь другую реализацию подсунуть. Условно говоря, проблему под ковер запрятать, подальше от глаз
источник

YW

Yakov Weber in Android Architecture
Прикольная статья, хорошо разложил для чего нужен module-injector, даже задумался что связь между фичи модулями не всегда зло. В общем оставил в закладке у себя. Спасибо
источник

A

ABI in Android Architecture
Egor Sigolaev
Ну можно, удачи. Можно и не юзать ретрофит с окхттп)
ну прям можно подумать что DI чисто для ретрофита замутили. как бы до DI ретрофит (и подобное) в синглтон загоняли и не парились... Опять же с точки зрения кода в маленьких проектах нафиг DI не нужен, если у тебя реально только один ретрофит + 2-3 фрагмента
источник

ES

Egor Sigolaev in Android Architecture
ABI
ну прям можно подумать что DI чисто для ретрофита замутили. как бы до DI ретрофит (и подобное) в синглтон загоняли и не парились... Опять же с точки зрения кода в маленьких проектах нафиг DI не нужен, если у тебя реально только один ретрофит + 2-3 фрагмента
Я писал вообщем про то, что можно отказаться от всех либ и мудрить свои велосипеды, но не стоит того По поводу маленьких проектов это да, соглашусь, больше гемора, чем пользы.
источник

A

ABI in Android Architecture
Egor Sigolaev
Я писал вообщем про то, что можно отказаться от всех либ и мудрить свои велосипеды, но не стоит того По поводу маленьких проектов это да, соглашусь, больше гемора, чем пользы.
велосипеды - это святое ) их трогать низя
источник

AD

Aleksey D. in Android Architecture
Roman Chumachenko
Думал о чем-то подобном раньше, это не будет работать. Ты запросил конкретную реализацию, снял с нее эту пометку "конкретная реализация А" и отправил дальше. Опять же, не выйдет теперь другую реализацию подсунуть. Условно говоря, проблему под ковер запрятать, подальше от глаз
ты просто выносишь на тот уровень, который знает о том, какая реализация нужна
допустим, у тебя есть экран, который в одном случае сохраняет что-то в базу, а в другом - отправляет данные на сервер
и вот в этом случае разные модули отлично подходят для того, чтобы создать один и тот же экран с разными реализациями

аннотация здесь не нужна, можно просто через тип провайдить)
источник

RC

Roman Chumachenko in Android Architecture
Aleksey D.
ты просто выносишь на тот уровень, который знает о том, какая реализация нужна
допустим, у тебя есть экран, который в одном случае сохраняет что-то в базу, а в другом - отправляет данные на сервер
и вот в этом случае разные модули отлично подходят для того, чтобы создать один и тот же экран с разными реализациями

аннотация здесь не нужна, можно просто через тип провайдить)
Кстати, прикольно
источник