Я разрабатываю приложение с принципами чистой архитектуры. У меня есть модуль domain
, который является модулем Java/Kotlin
и не имеет зависимостей от Android, и модуль domainImpl
, который является модулем Android
и имеет зависимости от модуля local
, remote
и domain
. это пример Repository
внутри модуля domain
:
interface MovieRepository {
fun getMovie(id: Long): Flow<Movie>
}
а ниже код - это реализация внутри модуля domainImpl
:
class MovieRepositoryImpl(
private val movieApi: MovieApi
) : MovieRepository {
override fun getMovie(id: Long): Flow<Movie> = flow {
emit(movieApi.getMovie(id))
}
}
В этом случае все работает нормально. Но теперь я пытаюсь добавить Android Paging 3
для разбиения на страницы. Поэтому я должен добавить метод к интерфейсу MovieRepository
, например:
fun getMovies(): Flow<PagingData<Movie>>
Но перед этим я должен добавить библиотеку пейджинга в свой модуль domain
, но, к сожалению, это библиотека Android
, и я не смог найти для нее основную зависимость. Итак, что я могу с этим поделать? Должен ли я из-за этого менять свой модуль domain
на модуль Android? Или есть другой обходной путь?