Realm вложения окупил, посмотрим как будет развиваться дальше, многие сложные кейсы и ошибки есть в backlog разработки, постепенно исправляют.
Автоинкремента ключей нет, думал упомянуть это или нет, видимо надо дописать. Обосновывается это тем, что невозможно корректно автоматически выставлять ключ на нескольких разрозненных девайсах, невозможно будет синхронизировать данные. В документации рекомендуют использовать RandomUUID или самому руками добавлять +1 к максимальному значению.
"… Не похоже, что Эйзер соблюдает пункт «будьте уважительны»..."
"… Мы правда пытаемся вести себя разумно и найти какой-то благоприятный выход из этой ситуации..."
А перед этим:
"… и если вы действительно выпустите opensource-проект с именем «kik», то наши юристы будут стучать в вашу дверь, заблокируют вам учетную запись и так далее… "
Очень благоразумно и уважительно, не поспоришь!
Спасибо за замечания!
1) Интерфейс Presenter в данный момент получился лишним, с этим я полностью согласен.
2) Абстрактный BasePresenter содержит в себе функцию управления подпиской, реализовывать это в каждом презентере = дублировать код.
3) Model слой и DTO. Тут палка о двух концах, с одной стороны независимость приложения от DTO, DBO и прочих моделей (которая в данный момент достигается за счет мапперов), с другой стороны жесткая связка Model (DataRepository) и прикладного приложения.
В данный момент в слое Model нет ни одного импорта из Presenter или View, мы можем перенести весь слой в другое приложение, он полностью независим. Также, как было сказано выше, при изменении model нужно переписать мапперы, View Object (а вместе с ними и остальной код) при этом не изменятся.
Спасибо за развернутый обзор!
Подскажите пожалуйста, при использовании Rx, как решаете проблему кеширования и оффлайн работы? Например отображать сначала сохраненные данные, проверить необходимость обновления, запустить загрузку новых данных и отобразить.
Автоинкремента ключей нет, думал упомянуть это или нет, видимо надо дописать. Обосновывается это тем, что невозможно корректно автоматически выставлять ключ на нескольких разрозненных девайсах, невозможно будет синхронизировать данные. В документации рекомендуют использовать RandomUUID или самому руками добавлять +1 к максимальному значению.
"… Мы правда пытаемся вести себя разумно и найти какой-то благоприятный выход из этой ситуации..."
А перед этим:
"… и если вы действительно выпустите opensource-проект с именем «kik», то наши юристы будут стучать в вашу дверь, заблокируют вам учетную запись и так далее… "
Очень благоразумно и уважительно, не поспоришь!
1) Интерфейс Presenter в данный момент получился лишним, с этим я полностью согласен.
2) Абстрактный BasePresenter содержит в себе функцию управления подпиской, реализовывать это в каждом презентере = дублировать код.
3) Model слой и DTO. Тут палка о двух концах, с одной стороны независимость приложения от DTO, DBO и прочих моделей (которая в данный момент достигается за счет мапперов), с другой стороны жесткая связка Model (DataRepository) и прикладного приложения.
В данный момент в слое Model нет ни одного импорта из Presenter или View, мы можем перенести весь слой в другое приложение, он полностью независим. Также, как было сказано выше, при изменении model нужно переписать мапперы, View Object (а вместе с ними и остальной код) при этом не изменятся.
Подскажите пожалуйста, при использовании Rx, как решаете проблему кеширования и оффлайн работы? Например отображать сначала сохраненные данные, проверить необходимость обновления, запустить загрузку новых данных и отобразить.