Moxy icon indicating copy to clipboard operation
Moxy copied to clipboard

Работа с несколькими модулями

Open a-solovyev opened this issue 6 years ago • 5 comments

Имеется следующая структура FeatureModule -- ActivityA -- ActivtyB FullAppModule -- ActivityC

FeatureModule - отдельная фича приложения (доступная для запуска отдельно от полного приложения), FullAppModule - полное приложение, которые содержит в себе FeatureModule. ActivityA, ActivityB, ActivityC используют Moxy.

Согласно документации, чтобы сборка FullAppModule успешно работала необходимо в FeatureModule в build.gradle указать путь arg("moxyReflectorPackage", "some.unique.package.name") и прописать его в FullAppModule в виде аннотации @RegisterMoxyReflectorPackages.

Если сделать таким способом, то при запуске FeatureModule отдельно от FullAppModule функционал Moxy не будет работать, т.к. MvpProcessor ищет MoxyReflector внутри пакета com.arellomobile.mvp, а его там нет, т.к. из-за правила arg("moxyReflectorPackage", "some.unique.package.name") он сгенерировался в другом пакете.

Концепция с RegisterMoxyReflectorPackages не очень подходит, когда в проекте есть модули, доступные для запуска по отдельности.

Планируется ли какой-то фикс для этой ситуации?

a-solovyev avatar Jul 18 '18 11:07 a-solovyev

Это интересная точка роста. Только у меня пока нет идей, как это можно хорошо сделать. Наверное, нужно добавлять какой-то аргумент аннотейшен процессора и как-то по другому генерировать код.

senneco avatar Jul 25 '18 06:07 senneco

Есть идея сделать как в архитектурных компонентах от Google. Проработаем этот вариант

xanderblinov avatar Oct 03 '18 10:10 xanderblinov

Модули ActivityA и ActivtyB это library module, так? А кто их запускает?

xanderblinov avatar Oct 03 '18 10:10 xanderblinov

Описанная ситуация - для проекта с поддержкой Instant App.

В представленной выше схеме это FeatureModule - фича из InstantApp, FullModule - модуль полного приложения, который включает в себя FeatureModule. Соответственно, ActivityA/ActivityB могут запускаться как из FeatureModule, так и из полного приложения. ActivityC - запускается только из полного приложения.

a-solovyev avatar Oct 14 '18 19:10 a-solovyev

@xanderblinov @senneco could you please check this PR (https://github.com/Arello-Mobile/Moxy/pull/247) ? Some of the reported multimodule issues should be fixed

sergevalevich avatar Mar 04 '19 09:03 sergevalevich