AC
Немного фидбека по бекстеку:
- В семпле, при старте приложения инициализация делается через replace без добавления в бекСтек.
- В таком подходе стейт транзакций менеджера, а вместе с ним и localStackCopy не отображают реальную картину.
- Например иерархия A -> B > C, будет в стеке как B, C
Предложение:
- Первый экран добавлять в стек, например через Forward, а не реплейс, тогда история будет A -> B -> C. Чтобы это заработало, нужно только подправить команду back в навигаторе, чтобы она корректно финишила активити.
P.S. фидбек про дефолтные имплементации из коробки, не нужно писать, что можно все это сделать самому с кастомным навигатором, речь не об этом.
P.S. 2: в Replace стоит проверка на empty бекстека, если она там только для поддержки команды back, то можно и без инициализации через forward обойтись
По поводу обратной совместимости: имхо, переход на котлин уже требует осознанных миграций, так что я бы с этим не запаривался.