Size: a a a

Android Architecture

2020 August 13

QH

Quantum Harmonizer in Android Architecture
Anton Potekhin
Ну а как сделать ? В домен добавлять rxjava ?
Есть какие-то причины, почему нет? Или почему флоу можно, а ырыкс нельзя?

Я б добавил в домен, не вижу в этом ничего страшного.
источник

AP

Anton Potekhin in Android Architecture
Quantum Harmonizer
Есть какие-то причины, почему нет? Или почему флоу можно, а ырыкс нельзя?

Я б добавил в домен, не вижу в этом ничего страшного.
Просто получится что будет rxjava добавлена только из-за этой SDK. Все остальное работает без RX
источник

QH

Quantum Harmonizer in Android Architecture
Anton Potekhin
Просто получится что будет rxjava добавлена только из-за этой SDK. Все остальное работает без RX
от этого можно уйти, только если отказаться от SDK
источник

RC

Roman Chumachenko in Android Architecture
Ребят, а с такой штукой столкнулся: у телеграма есть два чат листа (основной и архивный), логика получения обоих идентична, разве только один параметр отличается. Я думал сделать юзкейс для получения чатов с методом вроде:
getMessages(type: ChatListType): Flowable<List<Chat>>
, где ChatListType и Chat - мои модельки.
Вопрос в том, что со временем можем уйти от телеграма на другой месенджер, там такой фичи может не быть / реализацию будет совершенно другой. Как можно этот параметр (тип чатов) нормально абстрагировать в протоколе?
источник

QH

Quantum Harmonizer in Android Architecture
Roman Chumachenko
Ребят, а с такой штукой столкнулся: у телеграма есть два чат листа (основной и архивный), логика получения обоих идентична, разве только один параметр отличается. Я думал сделать юзкейс для получения чатов с методом вроде:
getMessages(type: ChatListType): Flowable<List<Chat>>
, где ChatListType и Chat - мои модельки.
Вопрос в том, что со временем можем уйти от телеграма на другой месенджер, там такой фичи может не быть / реализацию будет совершенно другой. Как можно этот параметр (тип чатов) нормально абстрагировать в протоколе?
А в пользовательском интерфейсе же тоже два списка/режима? Как их заабстрагируешь-то?
источник

RC

Roman Chumachenko in Android Architecture
Quantum Harmonizer
А в пользовательском интерфейсе же тоже два списка/режима? Как их заабстрагируешь-то?
А зачем? У телеги по свайпу происходит переход между списками, я думал реализовывать так же: по действию пользователя запросить с другим параметром данные
источник

QH

Quantum Harmonizer in Android Architecture
Roman Chumachenko
А зачем? У телеги по свайпу происходит переход между списками, я думал реализовывать так же: по действию пользователя запросить с другим параметром данные
ну вот, а что делать в UI, когда параметра не будет?
То есть если не заабстрагировать, то надо переписать будет в одном месте, если заабстрагировать — в другом. Тогда зачем?
источник

RC

Roman Chumachenko in Android Architecture
Quantum Harmonizer
ну вот, а что делать в UI, когда параметра не будет?
То есть если не заабстрагировать, то надо переписать будет в одном месте, если заабстрагировать — в другом. Тогда зачем?
Ну хорошо, я думал над альтернативой, но она кажется мне кривой: убираем из юзкейса параметр, тогда у меня будет реализация под один список чатов одна, а под другой другая, под капотом обе реализации будут тянуть общую логику из какой-то обертки, или даже наследоваться от этой общей логики. Тогда сейчас мне нужно инжектить две имплементации одного протокола во ViewModel. Мне казалось, что это криво - именованые инжекты юзкейсов
источник

QH

Quantum Harmonizer in Android Architecture
Roman Chumachenko
Ну хорошо, я думал над альтернативой, но она кажется мне кривой: убираем из юзкейса параметр, тогда у меня будет реализация под один список чатов одна, а под другой другая, под капотом обе реализации будут тянуть общую логику из какой-то обертки, или даже наследоваться от этой общей логики. Тогда сейчас мне нужно инжектить две имплементации одного протокола во ViewModel. Мне казалось, что это криво - именованые инжекты юзкейсов
инжекты — это вообще очень криво, потому что убивает основной конёк ООП — полиморфизм
источник

QH

Quantum Harmonizer in Android Architecture
источник

RC

Roman Chumachenko in Android Architecture
Quantum Harmonizer
инжекты — это вообще очень криво, потому что убивает основной конёк ООП — полиморфизм
Окей, у меня не так много опыта и я видел инжекты, как что-то довольно удобное. Правильно ли я понимаю, что можно хорошо написать большую прилагу под андроид абсолютно не прибегая ни к сервис локаторам, ни к инжектам?
источник

RC

Roman Chumachenko in Android Architecture
За статью спасибо большое, буду знакомиться)
источник

AS

Andrei Shikov in Android Architecture
Roman Chumachenko
Окей, у меня не так много опыта и я видел инжекты, как что-то довольно удобное. Правильно ли я понимаю, что можно хорошо написать большую прилагу под андроид абсолютно не прибегая ни к сервис локаторам, ни к инжектам?
ну параметры в конструкторы и норм :)
источник

QH

Quantum Harmonizer in Android Architecture
Roman Chumachenko
Окей, у меня не так много опыта и я видел инжекты, как что-то довольно удобное. Правильно ли я понимаю, что можно хорошо написать большую прилагу под андроид абсолютно не прибегая ни к сервис локаторам, ни к инжектам?
Абсолютно не прибегая — не совсем, потому что у активитей обязательно пустые конструкторы. Но в целом нет никакой проблемы вызывать остальные конструкторы руками. Инжекты — это пранк, который зашёл слишком далеко.
источник

AS

Andrei Shikov in Android Architecture
Quantum Harmonizer
Абсолютно не прибегая — не совсем, потому что у активитей обязательно пустые конструкторы. Но в целом нет никакой проблемы вызывать остальные конструкторы руками. Инжекты — это пранк, который зашёл слишком далеко.
ну так то можно просто из активити тоже вызвать некие поля/методы и сервис локаторы не нужны
источник

RC

Roman Chumachenko in Android Architecture
Andrei Shikov
ну параметры в конструкторы и норм :)
Да, но кто их будет поставлять)
Я имею ввиду, что у меня пачка экранов, часть из них требует зависимости, которых должно быть по 1 на прилагу, не оборачивать же это все в синглтоны? Тогда как, держать статикой в Application?
источник

QH

Quantum Harmonizer in Android Architecture
Andrei Shikov
ну так то можно просто из активити тоже вызвать некие поля/методы и сервис локаторы не нужны
вот и получились локаторы)
источник

AS

Andrei Shikov in Android Architecture
Quantum Harmonizer
вот и получились локаторы)
с локаторами обычно приходит хэшмапа 😄
источник

QH

Quantum Harmonizer in Android Architecture
Roman Chumachenko
Да, но кто их будет поставлять)
Я имею ввиду, что у меня пачка экранов, часть из них требует зависимости, которых должно быть по 1 на прилагу, не оборачивать же это все в синглтоны? Тогда как, держать статикой в Application?
А что делает DI-контейнер? Держит в аппликейшене :)
(статикой, не статикой — без разницы)
источник

AS

Andrei Shikov in Android Architecture
Roman Chumachenko
Да, но кто их будет поставлять)
Я имею ввиду, что у меня пачка экранов, часть из них требует зависимости, которых должно быть по 1 на прилагу, не оборачивать же это все в синглтоны? Тогда как, держать статикой в Application?
можно держать и статикой, почему нет
источник