flutter_redirectly 2.0.3
flutter_redirectly: ^2.0.3 copied to clipboard
A Flutter plugin for Redirectly dynamic links - similar to Firebase Dynamic Links but using your own backend.
Changelog #
All notable changes to the Flutter Redirectly plugin will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.1.0 - 2025-01-15 #
🚀 NEW: Complete Link Management & Resolution API #
Added comprehensive link management functionality that was missing from the initial pure Dart release.
✅ New Backend Endpoints
- Link Resolution:
GET /api/v1/resolve/{username}/{slug}- Resolve any link without redirecting - Individual Link Access:
GET /api/v1/links/{slug}- Get specific permanent link details - Temporary Link Access:
GET /api/v1/temp-links/{slug}- Get specific temporary link details - Link Management:
PUT/DELETE /api/v1/links/{slug}- Update/delete permanent links - Temp Link Management:
DELETE /api/v1/temp-links/{slug}- Delete temporary links
✅ New Flutter SDK Methods
getLinks()- Fetch all user's permanent linksgetLink(slug)- Get specific permanent link by sluggetTempLink(slug)- Get specific temporary link by slugresolveLink(username, slug)- Resolve any link by username/slug (public)updateLink(slug, target, metadata)- Update permanent linkdeleteLink(slug)- Delete permanent linkdeleteTempLink(slug)- Delete temporary link
✅ Enhanced Models
RedirectlyLinkResolution- Universal model for resolved links (permanent or temporary)- Enhanced
RedirectlyLinkClick- Now includes resolved link details withlinkResolutionfield - Smart Link Processing - Automatically resolves link details when clicked
✅ Improved Example App
- Link Resolution Demo - Test resolving links by username/slug
- Enhanced Link Clicks - Shows resolved link details (target, type, clicks, expiration)
- Complete CRUD Operations - Create, read, update, delete links
- Better UI - More informative displays with link details
📈 Benefits
- Complete API Coverage - Now supports all backend link operations
- Enhanced Link Clicks - Get full link details when links are clicked
- Better User Experience - Rich link information in your app
- Full CRUD Support - Manage links programmatically
- Public Resolution - Resolve any user's links without authentication
2.0.0 - 2025-01-15 #
🎉 MAJOR: Pure Dart Implementation - No Native Code Required #
This is a BREAKING CHANGE that completely removes all native platform code in favor of a pure Dart implementation.
✅ What's New
- Pure Dart: Completely eliminated Android and iOS native code - now 100% Dart!
- Simplified Architecture: Uses
app_linksfor deep link handling andhttpfor API calls - Zero Native Dependencies: No more method channels, platform interfaces, or native implementations
- Faster Development: No need to deal with Android Kotlin or iOS Swift code
- Easier Debugging: All logic runs in Dart, making debugging much simpler
- Single Source of Truth: All HTTP requests, JSON parsing, and error handling in one place
🔧 Technical Changes
- Removed all Android Kotlin code (
FlutterRedirectlyPlugin.kt) - Removed all iOS Swift code (
FlutterRedirectlyPlugin.swift) - Removed method channels and platform interfaces
- Removed Android
build.gradleand iOS.podspecfiles - Simplified plugin structure - no longer requires platform-specific configuration
- Direct HTTP API calls using Dart's
httppackage - Pure Dart URL parsing using
Uriclass - Streamlined link click handling with app_links
⚠️ Breaking Changes
- No longer a Flutter plugin - now a pure Dart package
- Removed
RedirectlyLinkDetailsmodel (links redirect directly, details not fetched) - Simplified
RedirectlyLinkClickmodel (removedlinkDetailsfield) - No platform-specific configuration required
📈 Benefits
- Smaller Bundle Size: No native code means smaller app size
- Faster Builds: No native compilation step
- Easier Testing: Pure Dart code is easier to unit test
- Better Error Messages: Consistent error handling across all platforms
- Simpler Maintenance: Single codebase instead of 3 (Dart + Android + iOS)
1.0.1 - 2025-01-15 #
Fixed #
- iOS Integration: Fixed CocoaPods discovery issue by moving
flutter_redirectly.podspectoios/directory - Platform Configuration: Updated
pubspec.yamlto explicitly specify podspec path for iOS - This resolves the error:
[!] No podspec found for flutter_redirectly in .symlinks/plugins/flutter_redirectly/ios
1.0.0 - 2024-01-15 #
Added #
-
Initial release of Flutter Redirectly plugin
-
Core Features:
- Create permanent and temporary links via Redirectly API
- Handle deep links in all app states (cold start, background, foreground)
- Stream-based link click handling
- Comprehensive error handling with typed errors
- Support for link metadata
- Built on
app_linksfor reliable cross-platform link handling
-
API Integration:
- Full integration with Redirectly backend API
- Support for
/api/v1/links(permanent links) - Support for
/api/v1/temp-links(temporary links) - Bearer token authentication
- Automatic URL parsing for subdomain format (
username.redirectly.app/slug)
-
Platform Support:
- Android implementation with native Kotlin
- iOS implementation with native Swift
- Support for both production and development URL formats
-
Developer Experience:
- Simple initialization with API key only
- Type-safe models for all data structures
- Comprehensive documentation and examples
- Debug logging support
- Complete example app demonstrating all features
-
Models:
RedirectlyConfig- Plugin configurationRedirectlyLink- Permanent link representationRedirectlyTempLink- Temporary link with expirationRedirectlyLinkClick- Incoming link click dataRedirectlyError- Typed error handlingRedirectlyLinkDetails- Link metadata and details
-
Error Handling:
RedirectlyErrorType.api- API-related errorsRedirectlyErrorType.network- Network connectivity errorsRedirectlyErrorType.configuration- Setup/config errorsRedirectlyErrorType.linkResolution- Link processing errors
Technical Details #
- Minimum Flutter SDK: 3.0.0
- Minimum Dart SDK: 3.0.0
- Dependencies:
app_links ^6.3.2,http ^1.2.2,plugin_platform_interface ^2.1.8 - Platform channels for native communication
- Event streams for real-time link handling
- HTTP client for direct API communication
Documentation #
- Complete API reference
- Setup instructions for Android and iOS
- Usage examples for all features
- Error handling patterns
- Example app with full implementation