Всем доброго времени суток)
Есть вопрос по навигации между экранами разных фич во многомодульном проекте, разделение на модули по фичам согласно подходу из статьи:
habr.com/ru/company/kaspersky/blog/520766/ (для каждой фичи есть модули api и impl)
Раскрою свой вопрос на примере абстрактного приложения для просмотра статей. Существуют следующие фичи: поиск статей, избранные статьи, просмотр конкретной статьи. Поиск и "Избранное" используют фичу просмотра, когда пользователь выбирает статью.
Какое api должно предоставлять фича просмотра статей и где должна происходить навигация на экран просмотра?
Навскидку я вижу два варианта:
1. Метод api принимает Router/FragmentManager, навигация выполняется в имплементации фичи просмотра
2. Метод api возвращает Screen или Fragment, навигация выполняется внутри фичи, инициирующей просмотр статьи
Какой вариант предпочтительнее? Есть ли ещё варианты?
Навскидку второй вариант выглядит логичнее, но подозреваю, что у него есть менее очевидные подводные камни)