mobile-deep-linking-app-links
Deep Linking & App Links Patterns
Quick Guide: Universal Links (iOS) and App Links (Android) are the gold standard -- they use HTTPS URLs that open your app directly or fall back to the website. Custom URI schemes (
myapp://) are simpler but less reliable (no fallback, can be hijacked). Useexpo-linkingfor URL handling (useURL,createURL,parse). Expo Router handles deep linking automatically. React Navigation requires alinkingconfig. Always test on real devices -- simulators miss edge cases.
<critical_requirements>
CRITICAL: Before Using This Skill
All code must follow project conventions in CLAUDE.md (kebab-case, named exports, import ordering,
import type, named constants)
(You MUST use Universal Links (iOS) and App Links (Android) for production apps -- custom URI schemes have no fallback and can be hijacked by other apps)
(You MUST host AASA and assetlinks.json over HTTPS at /.well-known/ -- Apple and Google will reject HTTP or incorrectly hosted files)
(You MUST handle all three app states: cold start (app not running), background (app suspended), and foreground (app active) -- missing any state causes dropped links)
(You MUST test deep links on real devices -- simulators and emulators do not fully replicate OS-level link handling behavior)