Моя текущая задача - разделить один из экранов приложений в виде библиотеки , чтобы другое приложение могло иметь его и сохранить все функциональность экрана
Экран состоит из 3 модулей чистой архитектуры: Ui , Domain и Data Data. Кроме того, у нас есть несколько модулей утилля в UI & data слои.
Наши модули имеют com.android.library плагин
Как я могу создавать такую функцию, как библиотека без изменения текущей архитектуры проекта (т.е. соблюдает текущие модули). Di код библиотеки и клиентский код. (Мы используем Koin ). Но теперь это не большая проблема. < /P>
Проект выглядит как < /p>
Код: Выделить всё
root
|-- app
|-- build.gradle
|-- src
|-- CombineFeatures
|-- ui
|-- feature1
|-- build.gradle
|-- src
|-- Feature1UICode
|-- domain
|-- feature1
|-- build.gradle
|-- src
|-- Feature1DomainCode
|-- data
|-- feature1
|-- build.gradle
|-- src
|-- Feature1DataCode
|-- settings.gradle
Я попытался построить библиотеку Aar из модуля UI с использованием задачи Gradle Complebble , однако у нее не было остальных чистых слоев и denepndecies от проекта (например, Material3 и т. Д.), Который я получил Java.rlasseslass. ... < /code>.
В данном случае я мог бы вызвать только функции импортированного модуля. < /p>
Могу ли я объединить несколько файлов Aar < /code> в одну? Как вариант, я могу попробовать использовать Fat-Aar-Lib-> Создание библиотеки AAR из мультимодульного проекта. Но это кажется не современным решением.
Мы не рассматриваем возможность перемещения функциональности в отдельный проект и хранилище, потому что в будущем будет трудно поддерживать в будущем
, ранее мы пытались создать композитные сборки, но он был очень медленным и принудительным у нас все исходное код (из проекта)>
Подробнее здесь: https://stackoverflow.com/questions/786 ... module-app
Мобильная версия