В Чистой Архитектуре должен ли Репозиторий быть модулем Android или Kotlin? - PullRequest
1 голос
/ 03 июля 2019

В чистой архитектуре репозиторий содержит удаленный (модифицированный) и локальный (комнатный) источник данных. Я вижу, что Remote - это чистый модуль Kotlin. Однако, поскольку Room требуется доступ к контексту Android, локальным является модуль Android.

Итак, должен ли репозиторий быть модулем Android из-за локального модуля? И если да, знаете ли вы какие-либо абстракции, чтобы избежать модуля Context в Local и сделать этот модуль чистым Kotlin?

Ответы [ 2 ]

2 голосов
/ 03 июля 2019

Различие не между языком программирования. Решающим фактором является то, будет ли он работать с какими-либо компонентами из Android, такими как Context, для работы.

У меня есть модуль, написанный на kotlin, который является java-library. Эта библиотека содержит мою «доменную» логику и не содержит никаких компонентов Android.

В вашем случае, поскольку вы используете Room, да, этот модуль должен быть com.android.library.

Я не думаю, что есть способ обойти это. Вы можете разделить ваш модуль на два, очевидно: один для модернизации (data-api) и один для Room (data-local)

1 голос
/ 21 июля 2019

Вот ссылка Приятно видеть открытый исходный код по ссылке выше.

...