Navigation and Shell
Основная модель
Клиент построен вокруг трех основных tab flows:
- Projects
- Ranking / Statistics
- Information
Поверх tab shell открываются detail-экраны, фильтры, dialogs и вложенные settings/profile flows.
Root shell
Главный контейнер собирается в MainScreen и держит:
- выбранную вкладку;
- видимость таббара;
- overlay-навигацию для вложенных экранов;
- ограничения для guest mode.
Custom Tab Bar
Нижний tab bar не использует стандартный системный вид. Он реализован как кастомный Compose-компонент с:
- выделенным active indicator;
- собственной анимацией переключения;
- кастомными иконками разделов;
- визуальным акцентом на центральном статистическом разделе.
Для документации важны не точные пиксели, а поведенческий контракт:
- активная вкладка должна быть очевидна визуально;
- переключение табов не должно ломать внутренние state экранов;
- detail flow не должен сбрасывать текущий tab selection.
Ограничения навигации
- guest user не получает доступ к ranking/statistics stack;
- часть project detail content скрывается без авторизации;
- auth flow определяет, попадет ли пользователь сразу в tab shell или пройдет через onboarding.
Что стоит поддерживать актуальным
- состав основных tab flows;
- правила видимости разделов для guest/auth users;
- список экранов, которые открываются поверх tab shell;
- места, где навигация зависит от auth state или backend response.