# Deep Linking vs Universal Links vs App Links > Learn the differences between deep linking, Universal Links on iOS, and App Links on Android, plus URI schemes and when to use each one. - Canonical: https://redirectly.app/blog/deep-linking-vs-universal-links-vs-app-links - Site: [Redirectly](https://redirectly.app) — deferred deep linking for Flutter & React Native - Published: 2025-03-07 - Author: Dmytro Vyrych - Category: Fundamentals · 8 min read Confused by the terminology? Learn the differences between deep linking, Universal Links (iOS), and App Links (Android). Understand URI schemes, custom protocols, and when to use each approach for seamless app navigation. ## Quick Answer **Deep linking** is the umbrella term. **Universal Links** (iOS) and **App Links** (Android) are Apple and Google's standard implementations of deep linking using standard HTTPS URLs. Custom URI schemes are the older approach. ## Table of Contents - 1. What is Deep Linking? - 2. Custom URI Schemes - 3. Universal Links (iOS) - 4. App Links (Android) - 5. Direct Comparison - 6. When to Use Each ## What is Deep Linking? > **Definition:** Deep linking is the technique of directing users to a specific location within an app, not just opening the app at its home screen. Instead of launching your app's main screen, a deep link takes you directly to the product page, checkout screen, or any specific content. ### Example Flow 1. **User clicks a link** — `https://myapp.com/product/shoes-123` 2. **App detects the deep link** — The URL is parsed to extract product ID: shoes-123 3. **App navigates to destination** — App opens directly to the product page instead of home screen ### Benefits - Better user experience - Higher engagement - Reduced friction - Improved conversion rates - Seamless navigation ### Use Cases - Marketing campaigns - Email campaigns - Social media sharing - Push notifications - In-app referrals ## Custom URI Schemes (The Old Way) ### How URI Schemes Work Custom URI schemes are proprietary protocols registered with the app. When iOS or Android encounters a scheme, it launches the associated app. ```text myapp://product/shoes-123 myapp://user/john-smith myapp://checkout?cart-id=abc123 ``` ### Advantages - Simple to implement - Works on old iOS versions - Works on old Android versions - Custom scheme format - Full control ### Disadvantages - No fallback to web - Shows app chooser dialog - Can be hijacked - Not SEO friendly - Poor user experience > **Why Avoid URI Schemes Today:** Modern apps should use Universal Links (iOS) or App Links (Android). URI schemes have security issues and poor user experience. If someone else registers the same scheme, their app could intercept your links. ## Universal Links (iOS) > **What Are Universal Links?** Universal Links allow iOS apps to be associated with standard HTTPS URLs. When a user taps a link, iOS checks if the app is installed and opens it directly, or falls back to the website if not. ### How Universal Links Work 1. **User taps link** — `https://myapp.com/product/shoes-123` 2. **iOS downloads AASA file** — `https://myapp.com/.well-known/apple-app-site-association` 3. **iOS verifies app ownership** — Checks Team ID and bundle ID match in AASA file 4. **App opens or website loads** — If verified, app opens. If app not installed, website loads in Safari. ### Example AASA File ```json { "applinks": { "apps": [], "details": [ { "appID": "ABC123DEF456.com.myapp.ios", "paths": ["/product/*", "/user/*", "NOT /admin/*"] } ] } } ``` ### Advantages - Standard HTTP/HTTPS URLs - No app chooser dialog - Fallback to website - SEO friendly - Secure and verified ### Disadvantages - Requires AASA file setup - Need domain ownership - iOS caches AASA file - Xcode configuration needed - Only works on iOS [Validate Your AASA File](https://redirectly.app/aasa-validator.md) ## App Links (Android) > **What Are App Links?** App Links are Android's version of Universal Links. They associate standard HTTPS URLs with your app and handle deep linking with automatic fallback to the website if the app isn't installed. ### How App Links Work 1. **User taps link** — `https://myapp.com/product/shoes-123` 2. **Android downloads assetlinks.json** — `https://myapp.com/.well-known/assetlinks.json` 3. **Android verifies package signature** — Confirms app signing certificate matches assetlinks.json 4. **App opens directly (no dialog)** — App opens immediately to specified destination ### Example assetlinks.json ```json [ { "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.myapp.android", "sha256_cert_fingerprints": [ "AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99" ] } } ] ``` ### Advantages - Standard HTTP/HTTPS URLs - No app chooser dialog - Fallback to website - SEO friendly - Secure verification ### Disadvantages - Requires assetlinks.json - Need certificate fingerprint - AndroidManifest.xml setup - Intent filter configuration - Only works on Android [Validate Your assetlinks.json](https://redirectly.app/assetlinks-validator.md) ## Direct Comparison | Aspect | URI Schemes | Universal Links | App Links | | --- | --- | --- | --- | | Platform | iOS & Android | iOS only | Android only | | URL Format | myapp://path | https://myapp.com/path | https://myapp.com/path | | App Chooser Dialog | Yes | No | No | | Fallback to Web | No | Yes | Yes | | SEO Friendly | No | Yes | Yes | | Verification File | None | apple-app-site-association | assetlinks.json | | Recommended | No | Yes | Yes | ## When to Use Each Approach ### URI Schemes - Avoid for New Apps Only use custom URI schemes if you need to support very old iOS or Android versions (pre-2015). They have significant disadvantages and security risks. If you must use them, combine with Universal Links or App Links as a fallback. ### Universal Links - iOS Apps Always use Universal Links for iOS apps. They provide the best user experience, are secure, and work across all modern iOS versions. - Email campaigns - Social media sharing - Marketing links - Push notifications ### App Links - Android Apps App Links are the standard for Android deep linking. They're secure, don't show app chooser dialogs, and support web fallbacks. - Email campaigns - Social media sharing - Marketing links - Push notifications ### Both iOS & Android Apps For cross-platform apps, implement both Universal Links and App Links using the same domain and URL structure. This ensures consistent behavior across both platforms. ## Best Practices - **Use standard HTTPS URLs** — Never use custom URI schemes for new apps - **Implement both platforms** — Support both iOS Universal Links and Android App Links - **Validate your setup** — Test thoroughly on real devices before deploying - **Plan fallback routes** — Ensure web version handles all deep link paths gracefully - **Monitor deep links** — Track which deep links are being used to guide product decisions ## Related Articles - [AASA Validator](https://redirectly.app/aasa-validator.md) — Validate your apple-app-site-association file for iOS Universal Links. - [assetlinks.json Validator](https://redirectly.app/assetlinks-validator.md) — Check your Android App Links configuration with our validator tool. - [Deep Linking Implementation](https://redirectly.app/deep-linking-guide.md) — Step-by-step guide to implementing deep linking in your app. --- Full site index for AI agents: https://redirectly.app/llms.txt