Добрый вечер. В проекте реализован чат через dirtyChecking (проверка каждые 15 секунд новых сообщений). Эта логика обработки должна идти в domain или repository слое? в перспективе возможен переход на webSocket, но пока имеем то, что имеем
Я бы в домен сделал модель на шаблоне observable. Об изменениях она оповещает подписчиков (в данном случае UI - окна чата). В слое репозитория таймер, который опрашивает бэк и в случае новых сообщений обновляет модель в домене. Логику обработки сообщений пишем через TDD (юнит-тесты) в доменной модели.
Всем привет. Может кто-нибудь подсказать про практику использования DTO между слоями приложения, интересует Достоинства и Недостатки данного подхода именно в Android разработке. Обычно использую 4 модуля в приложении: 1. app 2. common 3. domain 4. data Хочу между app и domain иметь различные объекты, но возникает вопрос.. как быть с LiveData, если я возвращаю LiveData с Room запроса, как её промапить?
Такое использование LiveData для чистой архитектуры не подходит. В чистой архитектуре LiveData имеет смысл только в связке ViewModel - UI (fragment/activity), т.е. в презентационном слое. Проектируя domain, держи всегда в голове мультиплатформу.
Всем привет. Может кто-нибудь подсказать про практику использования DTO между слоями приложения, интересует Достоинства и Недостатки данного подхода именно в Android разработке. Обычно использую 4 модуля в приложении: 1. app 2. common 3. domain 4. data Хочу между app и domain иметь различные объекты, но возникает вопрос.. как быть с LiveData, если я возвращаю LiveData с Room запроса, как её промапить?
Такое использование LiveData для чистой архитектуры не подходит. В чистой архитектуре LiveData имеет смысл только в связке ViewModel - UI (fragment/activity), т.е. в презентационном слое. Проектируя domain, держи всегда в голове мультиплатформу.
Такое использование LiveData для чистой архитектуры не подходит. В чистой архитектуре LiveData имеет смысл только в связке ViewModel - UI (fragment/activity), т.е. в презентационном слое. Проектируя domain, держи всегда в голове мультиплатформу.
Assets, да, скорее уровень daya. А к примеру, нужно получить текущую геолокацию или проверить, включён ли wifi. В таком случае это же уровень domain? Т е не получиться делать модуль domain как java library (без android). Или нужно по-другому мыслить?
Assets, да, скорее уровень daya. А к примеру, нужно получить текущую геолокацию или проверить, включён ли wifi. В таком случае это же уровень domain? Т е не получиться делать модуль domain как java library (без android). Или нужно по-другому мыслить?
Это не домейн, это presentation слой, скорее всего
Assets, да, скорее уровень daya. А к примеру, нужно получить текущую геолокацию или проверить, включён ли wifi. В таком случае это же уровень domain? Т е не получиться делать модуль domain как java library (без android). Или нужно по-другому мыслить?
Domain слой - это юзкейсы, маперы, конвертеры, утилы, хелперы и прочие вещи. Думаю так понятнее.