Repository navigation
Navigation redesign: Today, Upcoming, Profile #137
Description
Description
Redesign the app navigation to use a bottom navigation bar with three tabs: Today, Upcoming, and Profile. This replaces the current navigation structure and establishes the main app structure that all other screens build upon.
The bottom navigation bar should show the current tab with a highlighted state and allow switching between the three main sections. Navigation between tabs should preserve the scroll position and state of each tab.
The Today tab shows the Today screen (from #125). The Upcoming tab shows the Upcoming screen (from #135, #15). The Profile tab shows a placeholder Profile screen that will later contain the "Upgrade to Pro" banner (from #130), a Statistics option, app settings, and account information.
Navigation to secondary screens (Create Task, Task Detail, Edit Task) should push on top of the current tab's nav stack.
Scope
In scope: bottom navigation bar with three tabs (Today, Upcoming, Profile), tab switching with state preservation, Profile placeholder screen with Statistics option, navigation to secondary screens pushed on the current tab stack, and string resources.
Out of scope: Upcoming screen content (separate ticket #15), Profile screen content beyond a placeholder, "Upgrade to Pro" banner (separate ticket #130), statistics screens (separate tickets #25, #26).
Acceptance criteria
- GIVEN the app is opened
WHEN the main screen renders
THEN a bottom navigation bar is shown with three tabs: Today, Upcoming, and Profile - GIVEN the bottom navigation bar is visible
WHEN the current tab is active
THEN it is visually highlighted compared to the other tabs - GIVEN the user taps a different tab
WHEN the switch occurs
THEN the corresponding screen is displayed and the tab is highlighted - GIVEN the user switches tabs
WHEN returning to a previously visited tab
THEN the scroll position and state of that tab are preserved - GIVEN the user is on any tab
WHEN they navigate to a secondary screen (e.g., Create Task, Task Detail)
THEN the secondary screen is pushed on top of the current tab's navigation stack - GIVEN the user presses back from a secondary screen
WHEN the navigation occurs
THEN they return to the tab they were on - GIVEN the user is on the Profile tab
WHEN the screen renders
THEN a placeholder Profile screen is shown with a Statistics option - GIVEN user-visible text appears in the navigation or placeholder screen
WHEN the app renders them
THEN all visible text comes from string resources
Activity
MessiasLima commentedon Jul 26, 2026
/oc Implement this task
opencode-agent commentedon Jul 26, 2026
Created PR #198
opencode session | github run