SDK Overview
Clippr provides native SDKs for Flutter, iOS, and Android. All SDKs share a consistent API design for easy cross-platform development.
Available SDKs
Flutter SDK
Cross-platform SDK for Flutter apps. Supports iOS and Android with a single codebase.
iOS SDK
Native Swift SDK for iOS apps. Supports iOS 13.0+ with Swift 5.7+.
Android SDK
Native Kotlin SDK for Android apps. Supports API 21+ (Android 5.0).
Feature Comparison
| Feature | Flutter | iOS | Android |
|---|---|---|---|
| Deep Link Handling | Yes | Yes | Yes |
| Deferred Deep Linking | Yes | Yes | Yes |
| Deterministic Matching | Yes (Android) | No | Yes (Install Referrer) |
| Probabilistic Matching | Yes | Yes | Yes |
| Event Tracking | Yes | Yes | Yes |
| Revenue Tracking | Yes | Yes | Yes |
| Create Links (SDK) | Yes | Yes | Yes |
| Async/Await | Yes | Yes | Yes |
| Callback API | Yes | Yes | Yes |
Quick Comparison
Installation
yaml
dependencies:
clippr: ^0.0.4
swift
// Swift Package Manager
.package(url: "https://github.com/nexlabstudio/clippr-ios.git", from: "0.0.4")
kotlin
implementation("xyz.useclippr:clippr:0.0.4")
Initialization
dart
await Clippr.initialize(apiKey: 'YOUR_API_KEY');
swift
Clippr.initialize(apiKey: "YOUR_API_KEY")
kotlin
Clippr.initialize(context = this, apiKey = "YOUR_API_KEY")
Get Initial Link
dart
final link = await Clippr.getInitialLink();
swift
let link = await Clippr.getInitialLink()
kotlin
val link = Clippr.getInitialLink() // suspend function
Link Callback
dart
Clippr.onLink = (link) {
print(link.path);
};
swift
Clippr.onLink = { link in
print(link.path)
}
kotlin
Clippr.onLink = { link ->
println(link.path)
}
SDK Architecture
All Clippr SDKs follow the same architecture:
┌─────────────────────────────────────────┐
│ Your App Code │
├─────────────────────────────────────────┤
│ Clippr SDK │
│ ┌───────────────────────────────────┐ │
│ │ Link Handler │ │
│ │ - Universal Links (iOS) │ │
│ │ - App Links (Android) │ │
│ │ - Deferred Link Matching │ │
│ └───────────────────────────────────┘ │
│ ┌───────────────────────────────────┐ │
│ │ Event Tracker │ │
│ │ - Custom events │ │
│ │ - Revenue tracking │ │
│ └───────────────────────────────────┘ │
│ ┌───────────────────────────────────┐ │
│ │ Link Creator │ │
│ │ - Generate short links │ │
│ │ - Custom aliases │ │
│ └───────────────────────────────────┘ │
├─────────────────────────────────────────┤
│ Clippr API │
│ https://api.clppr.xyz │
└─────────────────────────────────────────┘
Data Models
All SDKs share the same data models:
ClipprLink
| Property | Type | Description |
|---|---|---|
path |
String | The deep link path (e.g., /product/123) |
metadata |
Map/Dictionary | Custom metadata attached to the link |
attribution |
Attribution | Campaign attribution data |
matchType |
MatchType | How the link was matched |
confidence |
Double | Match confidence score (0.0 - 1.0) |
Attribution
| Property | Type | Description |
|---|---|---|
campaign |
String? | Campaign name |
source |
String? | Traffic source |
medium |
String? | Marketing medium |
MatchType
| Value | Description |
|---|---|
direct |
User clicked link with app installed |
deterministic |
Matched via Install Referrer (Android) |
probabilistic |
Matched via device fingerprinting |
none |
No match found (organic install) |
LinkParameters
| Property | Type | Description |
|---|---|---|
path |
String | Deep link path |
metadata |
Map/Dictionary | Custom metadata |
campaign |
String? | Campaign name |
source |
String? | Traffic source |
medium |
String? | Marketing medium |
alias |
String? | Custom short code |
socialTags |
SocialMetaTags? | Open Graph tags |
Requirements
| SDK | Minimum Version |
|---|---|
| Flutter | Flutter 3.10+, Dart 3.10+ |
| iOS | iOS 13.0+, Swift 5.7+, Xcode 14+ |
| Android | API 21+ (Android 5.0), Kotlin 1.9+ |
Next Steps
Choose your platform to get started:
- Flutter SDK - Full Flutter integration guide
- iOS SDK - Full iOS integration guide
- Android SDK - Full Android integration guide