Skip to content

[Due for payment 2025-06-17] [$50] Improve performance around the NavigationTabBar #63244

Description

@mountiny

Coming from here

Problem

NavigationTabBar apart from original its original render target TopLevelTabBar, is used in multiple components to work around existing transitions/animations issues:

  1. SearchSidebar
  2. BaseSidebarScreen
  3. SearchPageNarrow
  4. InitialSettingsPage
  5. WorkspaceInitialPage
  6. WorkspacesListPage

Those components are some of the most commonly used in the app, making NavigationTabBar be re-created at many user interactions and navigations.

Currently the cost of mounting NavigationTabBar on many interactions was measured to be:

  • ~100ms iOS simulator
  • ~20ms Web

Solution

Implement NavigationTabBarDummy which skips heavy parts and exposes only a UI component that resembles actual navigator. It can be done due to the fact that those doppelgangers are not responsible of handling logic and exist solely for fixing animations (source).

Potential cost of mounting NavigationTabBarDummy on many interactions was measured to be:

  • ~25ms iOS simulator -> 25% of original duration
  • ~5ms Web -> 25% of original duration
Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~021929505961389572009
  • Upwork Job ID: 1929505961389572009
  • Last Price Increase: 2025-07-05
Issue OwnerCurrent Issue Owner: @bfitzexpensify

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionBugSomething is broken. Auto assigns a BugZero manager.DailyKSv2ExternalAdded to denote the issue can be worked on by a contributor

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions