К примеру у меня есть сущность, полученная по сети, потом сущность, которую я храню в базе. И сущность, которую я использую при выводу в UI. Так вот, на каком уровне расположить эти маперы? И между какими слоями заниматься перегоном этих сущностей?
Я думаю мап дто рума в ui, и дто из бека в ui. А, ну и из бека в рум.
У тебя уровень более внешний (домен в центре если) должен получать дто из слоев ниже. В идеале стоит абстрагироваться от того, что тебе ретрофит и рум возвращают - эти объекты только детали имплементации
Получится, что usecase будет возвращать объект room, который я буду после этого конвертировать в ui?
Юзкейс смотря какой. Если хочешь отобразить данные для ui из рума, то юзаешь юзкейс с мапингом ROOM -> UI.
Зачем потом мапить, если можно на ходу?
Т е у меня будет маппер в app, который будет перегонять объекты Retrofit и Room в UI, правильно? А может сделать, чтобы уровень data возвращал dto объекты, без каких-либо аннотации рума и ретрофита?
Это я имел ввиду. Можно такой вопрос глупенький, раньше использовал RxJava, решил попробовать крутизны. Так вот, можно конвертировать suspend await функцию на лету? И делать это нужно через map или flatmap?
Честно говоря не юзал корутины, мало знаком с ними. Я бы просто при получении поджо из сети или рума сразу бы мапил в какие то свои дто.
Да, я про тоже. И ими оперировать при возвращении результата с уровня data
Ну да. Просто сделать условно 2 юзкейса, которые будут возвращать данные или с рума, или с бека. И каждый юзкейс будет возвращать свой дто.
И в репозитории инжектить нужный юзкейс
а если на ui вам все не нужно? зачем тащить всю модель?
Можно разделить и возвращать из data различные сущности, в зависимости от надобности
Обсуждают сегодня