Skip to content

perf(navigation): implement deep link pre-warming (#388)#461

Merged
RUKAYAT-CODER merged 5 commits into
rinafcode:mainfrom
shadrach68:deeplink
May 28, 2026
Merged

perf(navigation): implement deep link pre-warming (#388)#461
RUKAYAT-CODER merged 5 commits into
rinafcode:mainfrom
shadrach68:deeplink

Conversation

@shadrach68
Copy link
Copy Markdown
Contributor

@shadrach68 shadrach68 commented May 28, 2026

Closes #388


Resolves Issue #388: Implement deep linking performance optimization with pre-warming

Description:
Optimized deep linking and notification app launches by pre-fetching data and hydrating state behind the native splash screen. This eliminates jarring loading spinners for users launching the app via external links.

Changes Included:

  • Added DeepLinkPrewarmProvider to orchestrate the Expo Splash Screen lifecycle around async data fetches.
  • Implemented prewarmDeepLinkData to safely intercept routes, fetching course data from offline storage or fallback APIs before navigation.
  • Hydrated pre-warmed data directly into the global useDeepLinkStore.
  • Implemented a 5-second safety timeout so the app never hangs on the splash screen during bad network conditions.
  • Added full unit test coverage for deep link parsing and notification handlers.
  • Wrote DEEP_LINKING_STRATEGY.md outlining the architecture.

Acceptance Criteria Met:

  • Detect deep link at app start
  • Fetch screen data during splash/animation
  • Prepare state before navigation
  • Navigate to pre-warmed screen
  • Test deep link performance
  • Document deep link strategy

- Complete parseDeepLink implementation in notification handlers for accurate routing

- Add DEEP_LINKING_STRATEGY.md to document the pre-warming architecture

- Orchestrate data fetching and state hydration behind native splash screen

- Eliminate loading spinners for incoming deep links and push notifications

Resolves rinafcode#388
@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented May 28, 2026

@shadrach68 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@RUKAYAT-CODER RUKAYAT-CODER merged commit d1d555d into rinafcode:main May 28, 2026
0 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement deep linking performance optimization with pre-warming

2 participants