traput_dynamic_linking 0.0.1 copy "traput_dynamic_linking: ^0.0.1" to clipboard
traput_dynamic_linking: ^0.0.1 copied to clipboard

Traput Dynamic Linking SDK for Flutter. Handles Universal Links (iOS), App Links (Android), and deferred deep links via a single API (Traput.onLink()). Logic-only, no UI.

0.1.0 (2024-12-XX) #

First public beta release. This release focuses on SDK maturity and developer experience.

Phase 4: SDK Maturity & Developer Experience #

4.1 - Public SDK API Finalization

  • BREAKING: Renamed TraputDynamicLinking to Traput for cleaner API
  • Added timeout parameter to Traput.initialize() for configurable request timeout
  • Added enableDebugLogging parameter to Traput.initialize() for optional debug logging
  • Enhanced DartDocs for all public APIs with comprehensive examples
  • Improved API documentation and examples

4.2 - Error Handling & Diagnostics

  • Created comprehensive error hierarchy with typed exceptions:
    • TraputException (base class)
    • TraputInitializationException and subtypes
    • TraputNetworkException and subtypes (timeout, connection)
    • TraputBackendException and subtypes (API errors, invalid response, token invalid)
    • TraputPlatformException and subtypes (missing bundle ID, platform channel errors)
  • Implemented TraputLogger class for debug logging
  • All errors are now typed and actionable
  • Debug logging never includes secrets (API keys, tokens)

4.3 - Lifecycle & Edge Case Handling

  • Implemented link queue for single-delivery guarantees
  • Added idempotent link delivery (prevents duplicate deliveries)
  • Improved handling of multiple rapid link opens
  • Enhanced callback registration timing handling
  • Better support for app resume scenarios

4.4 - Deferred Deep Linking Reliability

  • Implemented exponential backoff retry logic (3 retries: 1s, 2s, 4s delays)
  • Added configurable timeout support (default: 10 seconds)
  • Improved token invalidation handling
  • Enhanced safe fallbacks for deferred resolution failures
  • Retry on network errors and 5xx server errors
  • Don't retry on 4xx client errors (including invalid tokens)

4.5 - Demo App Polish

  • Enhanced demo app UI with better link display
  • Added example deep link routes (product, user, campaign)
  • Improved visual feedback and status display
  • Added configuration display
  • Created comprehensive demo app README

4.6 - Documentation

  • Created troubleshooting guide with common issues and solutions
  • Created integration checklist for step-by-step setup
  • Enhanced main README with troubleshooting and common mistakes
  • Improved all code examples
  • Added error handling examples

4.7 - SDK Release Readiness

  • Set version to 0.1.0
  • Created API stability documentation
  • Comprehensive changelog
  • Release notes

Features #

  • Unified API: Traput.onLink() handles Universal Links, App Links, and deferred deep links
  • Robust Error Handling: Typed exceptions for all error scenarios
  • Reliable Deferred Linking: Automatic retry with exponential backoff
  • Debug Logging: Optional debug logging (never logs secrets)
  • Lifecycle Support: Handles all app states (cold start, warm start, resume)
  • Single Delivery Guarantee: Each link is delivered exactly once

Breaking Changes #

  • API Rename: TraputDynamicLinking renamed to Traput
    • This is not a breaking change for existing users since SDK has never been published
    • All references updated in code, tests, and documentation

Deprecated #

  • Traput.resolveDeferredLink() - Use Traput.onLink() instead

Migration #

Since this is the first public release, no migration is needed. If you were using an internal version:

  1. Update class name from TraputDynamicLinking to Traput
  2. Consider using Traput.onLink() instead of resolveDeferredLink()
  3. Enable debug logging during development: enableDebugLogging: true
  4. Handle typed exceptions instead of generic exceptions

0.0.1 #

Initial SDK skeleton:

  • TraputDynamicLinking.initialize(apiKey, baseUrl)
  • Capture traput_token from Android intents and iOS URLs/universal links
  • resolveDeferredLink() calls POST /deferred/resolve using http
1
likes
150
points
48
downloads

Publisher

unverified uploader

Weekly Downloads

Traput Dynamic Linking SDK for Flutter. Handles Universal Links (iOS), App Links (Android), and deferred deep links via a single API (Traput.onLink()). Logic-only, no UI.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, http

More

Packages that depend on traput_dynamic_linking

Packages that implement traput_dynamic_linking