Size: a a a

Android Architecture

2020 October 04

S

Singular in Android Architecture
Как использовать общую модель для репозиторий Network, DB?
источник

P

Pavel in Android Architecture
Singular
Как использовать общую модель для репозиторий Network, DB?
Никак. Не надо общую. Для Network своя модель, для DB - своя. И они мапятся в одну третью.
Если очень хочется, можно Network-модель использовать в качестве той "третьей". Обычно network-модель адекватна и не перегружена всякой хренью (кроме, разве что аннотаций json-парсера).
А DB модель обычно сильно отличается от нормальной модели, так что её лучше закрыть подальше - не выпускать за имплементацию репозитория.
источник

S

Singular in Android Architecture
Pavel
Никак. Не надо общую. Для Network своя модель, для DB - своя. И они мапятся в одну третью.
Если очень хочется, можно Network-модель использовать в качестве той "третьей". Обычно network-модель адекватна и не перегружена всякой хренью (кроме, разве что аннотаций json-парсера).
А DB модель обычно сильно отличается от нормальной модели, так что её лучше закрыть подальше - не выпускать за имплементацию репозитория.
А как тогда интерфейс репозитория должен выглядеть?
источник

P

Pavel in Android Architecture
Как-то так:
 
// Где-то на уровне бизнес-логики:

interface MyNetworkRepo {
   suspend fun requestMyDataFromNetwork(): MyData
}

interface MyDbRepo {
   suspend fun requestMyDataFromDb(): MyData
}

// Где-то на уровне data, может даже в другом модуле:

class MyNetworkRepoImpl: MyNetworkRepo {
   suspend fun requestMyDataFromNetwork(): MyData {
         // request MyDataNetwork model
        // convert MyDataNetwork to MyData
   }
}


class MyDbRepoImpl: MyDbRepo {
   suspend fun requestMyDataFromDb(): MyData {
         // request MyDataDb model
        // convert MyDataDb to MyData
   }
}



Потом интерактор (или что-то на более высоком уровне) инжектит в себя эти репозитории и работает с ними. Но модель одна. А модели для работы с данными скрыты в имплементациях.
источник
2020 October 05

HR

Habanero Red in Android Architecture
Имхо, неправильно явно показывать уровню бизнес-логики существование сети и БД отдельно
источник

M

Maksim Gridin in Android Architecture
Habanero Red
Имхо, неправильно явно показывать уровню бизнес-логики существование сети и БД отдельно
Думаю это зависит от приложения. У меня была реализация репозитория, в которой он скрывал от логики наличие бд, сети и кэша, но иногда иногда именно по логике нужно вытащить джанные из конкретного источника
источник

М

Максим in Android Architecture
в чём смысл выносить модель в MVI в другой поток? в каких случаях это необходимо?
источник

IN

Ilya Nikolaev in Android Architecture
Запросы в сеть , бд и даже шаред преференсес нужно выносить в другой поток, что бы не ловить anr . Архитектура тут не причём.
источник

М

Максим in Android Architecture
Вопрос был именно про архитектуру. Почему запросы делаются асинхронно мы понимаем, но для чего нужна асинхронная модель?
источник

АЕ

Алексей Ершов... in Android Architecture
Что значит асинхронная модель, и про какой именно MVI речь?
источник

М

Максим in Android Architecture
Алексей Ершов
Что значит асинхронная модель, и про какой именно MVI речь?
модель которая в другом потоке
источник

АЕ

Алексей Ершов... in Android Architecture
что значит модель которая в другом потоке?
источник

М

Максим in Android Architecture
а что смущаем в этом? вроде просто звучит, у мвi есть модель .. к ней обращаются в другой поток
источник

IN

Ilya Nikolaev in Android Architecture
2 года пишу на mvi и не понимаю о чем ты)
источник

IN

Ilya Nikolaev in Android Architecture
Давай с примерами.
источник

АЕ

Алексей Ершов... in Android Architecture
в этом и проблема, слишком просто) Какой именно MVI вы имеете в виду, как там выглядит модель, кто к ней обращается в другом потоке. Откуда вы вообще это утверждение взяли. В общем, задайте вопрос так, чтобы на него можно было ответить)
источник

М

Максим in Android Architecture
источник

М

Максим in Android Architecture
вот пример такой модели
источник

АЕ

Алексей Ершов... in Android Architecture
какой класс смотреть?
источник

М

Максим in Android Architecture
источник