У нас есть приложение с нижней панелью навигации. Навигация в нашем MainActivity
. Мы управляем навигацией между различными экранами приложения с фрагментами. Например. Есть:
- ProductFragment
- LoginFragment
- CartFragment
- ProfileFragment
- SearchFragment
В нашем MainActivity
у нас есть метод pushFragment(Fragment fragment)
, который отвечает за замену текущего фрагмента новым фрагментом. Между нашими разными фрагментами есть много зависимостей. E.g.:
- пользователь может запустить
ProductFragment
с CartFragment
- Чтобы увидеть определенные данные о продукте, пользователь должен войти в систему (
LoginFragment
)
-
LoginFragment
также используется с ProfileFragment
- Посредством «исторических заказов» в
ProfileFragment
вы также можете отображать сведения о продукте через ProductFragment
.
Теперь мы хотим модулировать наше приложение для Android, чтобы использовать мгновенные приложения, быстрое время сборки и все другие преимущества. В идеале мы хотели бы иметь модуль для каждого фрагмента. Однако из-за зависимостей, подобных тем, которые я только что описал, мы не можем создать иерархию линейных зависимостей и не знаем, как создавать наши модули.
Каждый раз, когда мы пытаемся выбрать наш первый модуль для извлечения из модуля приложения, мы сталкиваемся с множеством зависимостей, которые нам также необходимо перенести в новый модуль.
Единственное решение, которое мы в настоящее время видим, - это изменить способ навигации между фрагментами, но мы не можем придумать, как это сделать.