Open a-solovyev opened 6 years ago
Это интересная точка роста. Только у меня пока нет идей, как это можно хорошо сделать. Наверное, нужно добавлять какой-то аргумент аннотейшен процессора и как-то по другому генерировать код.
Есть идея сделать как в архитектурных компонентах от Google. Проработаем этот вариант
Модули ActivityA и ActivtyB это library module, так? А кто их запускает?
Описанная ситуация - для проекта с поддержкой Instant App.
В представленной выше схеме это FeatureModule - фича из InstantApp, FullModule - модуль полного приложения, который включает в себя FeatureModule. Соответственно, ActivityA/ActivityB могут запускаться как из FeatureModule, так и из полного приложения. ActivityC - запускается только из полного приложения.
@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
Имеется следующая структура 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 не очень подходит, когда в проекте есть модули, доступные для запуска по отдельности.
Планируется ли какой-то фикс для этой ситуации?