Ответ
Да, работал с Cicerone — это навигационный фреймворк для Android, который помогает управлять навигацией между экранами, используя концепцию роутеров и команд.
Преимущества:
- Упрощает навигацию, отделяя логику перехода от Activity/Fragment.
- Подходит для сложных сценариев (например, глубокие ссылки).
- Легко интегрируется с MVP/MVI/MVVM.
Пример:
// Создание роутера и навигатора
val router = Router()
val navigator = SupportAppNavigator(activity, R.id.container)
// Переход на новый экран
router.navigateTo(SomeScreen())
// Обработка команд в Activity
Cicerone.with(router).getNavigatorHolder().setNavigator(navigator)
Минусы:
- Необходимость ручного управления жизненным циклом (например,
setNavigatorвonResume/onPause). - Меньше встроенной анимации по сравнению с Navigation Component.
Хорошо подходит для проектов с кастомной навигацией.