Skip to content

Restructure mobile app navigation to use feature-based modular architecture #579

Description

@Smartdevs17

Context

React Navigation is organized as a single flat navigator with all 54+ screens registered centrally, causing merge conflicts and tight coupling.

Current Limitation/Problem

Adding a new screen requires modifying the central navigation file. Feature teams create merge conflicts on the same navigation file regularly.

Expected Outcome

Feature-based navigation: each domain module owns its navigator stack. Root navigator composes feature navigators. Each feature defines its own param list type.

Acceptance Criteria

  • Each feature has its own Navigator component: AuthNavigator, BillingNavigator, SubscriptionNavigator, SettingsNavigator, AdminNavigator
  • Root navigator uses composition pattern: render feature navigators as screens
  • Deep linking: deeplink patterns (subtrackr://subscriptions/123) map to correct feature navigator
  • Type-safe navigation: each feature defines its own ParamList type, exported and consumed by root
  • No circular type dependencies between features enforced by ESLint rule
  • Migration: all existing 54+ screens moved without behavior change
  • Performance: no increase in navigation mount time (measured <100ms for initial render)

Technical Scope

  • mobile/app/navigation/ - RootNavigator with feature composition
  • mobile/features/auth/navigation/ - AuthNavigator
  • mobile/features/billing/navigation/ - BillingNavigator
  • mobile/features/subscriptions/navigation/ - SubscriptionNavigator
  • mobile/features/settings/navigation/ - SettingsNavigator
  • mobile/features/admin/navigation/ - AdminNavigator
  • shared/types/navigation.ts - root param list type

Metadata

Metadata

Assignees

Labels

200-points200 point issueStellar WaveIssues in the Stellar wave programdrips-waveIssues in the Drips Wave programhighHigh complexity issue

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions