# SDK de parrainage iOS et Android

# Ajouter Frak à votre application mobile

Frak propose des SDK natifs pour Android et iOS, pour que le mécanisme de parrainage qui fonctionne sur votre site web fonctionne aussi dans votre application : un client partage, un ami installe ou achète, et la récompense est versée lors de la confirmation de la commande. L'intégration tient en quelques courts extraits de code par plateforme et prend moins d'une heure.

## Ce que vous obtenez

| Fonctionnalité | Android | iOS |
| --- | --- | --- |
| Fenêtre de partage avec un lien de parrainage personnel | Oui | Oui |
| Montants des récompenses à afficher dans votre interface | Oui | Oui |
| Suivi des interactions et des achats | Oui | Oui |
| Liens profonds de parrainage vers votre application | Oui | Oui |
| Redirection pour installer le portefeuille Frak | Oui | Oui |

Les deux SDK se divisent en deux parties : un cœur sans interface utilisateur (aucun chargement de vue web n'est requis) et un module d'interface facultatif qui ajoute la fenêtre de partage prête à l'emploi.

## Les trois étapes

1. **Créez votre compte marchand.** Connectez-vous au [tableau de bord professionnel](https://business.frak.id/) et notez votre identifiant marchand. Votre application mobile le transmettra explicitement au démarrage. Voir [Enregistrer votre site](/fr/guides/dashboard/register/).

2. **Ajoutez le SDK à votre application.** Initialisez-le une seule fois, affichez un bouton de partage et suivez vos commandes. Le guide complet se trouve dans les manuels de développement ci-dessous.

3. **Confirmez les commandes depuis votre serveur.** Comme sur le web : c'est un webhook signé depuis votre serveur qui libère la récompense. Voir [Valider les achats depuis votre serveur](/fr/guides/platforms/custom/backend/).

## Installer et initialiser

Nécessite Android 7.0 (API 24) et Java 17. Ajoutez les dépendances :

```kotlin title="app/build.gradle.kts"
dependencies {
    implementation("id.frak.sdk:core:1.0.0")
    // Only if you show the sharing sheet
    implementation("id.frak.sdk:ui:1.0.0")
}
```

Initialisez une fois, dans `Application.onCreate` ou dans votre Activity de lancement :

```kotlin
Frak.initialize(
    context = applicationContext,
    config = FrakConfig(merchantId = "your-merchant-id") {
        metadata = FrakMetadata {
            name = "Your Store"
            currency = FrakCurrency.EUR
            homepageLink = "https://your-store.com"
        }
    },
)
```

Affichez la fenêtre de partage :

```kotlin
val sharing = FrakSharing.Builder(::onShareResult).build(this)
sharing.present(SharingRequest { targetInteraction = "purchase" })
```

Et suivez une commande confirmée :

```kotlin
Frak.client.tracking.purchase(
    customerId = "cust_123",
    orderId = "order_456",
    token = "a-unique-order-token",
)
```

Tout est également disponible depuis Java : chaque appel suspendu possède un équivalent `CompletableFuture`.

[Guide de développement Android](/developers/integration/android/)

Nécessite iOS 15 and Xcode 16. Dans Xcode, utilisez **File → Add Package Dependencies** avec `https://github.com/frak-id/frak-ios-sdk`, ou déclarez-le dans un `Package.swift` :

```swift title="Package.swift"
dependencies: [
    .package(url: "https://github.com/frak-id/frak-ios-sdk.git", exact: "1.0.0")
],
targets: [
    .target(name: "YourApp", dependencies: [
        .product(name: "FrakSDK", package: "frak-ios-sdk"),
        // Only if you show the sharing sheet
        .product(name: "FrakSDKUI", package: "frak-ios-sdk"),
    ])
]
```

Ajoutez les schémas d'URL du portefeuille à votre `Info.plist`. Votre application ne peut pas détecter ou ouvrir le portefeuille Frak sans cela :

```xml title="Info.plist"
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>frakwallet</string>
    <string>frakwallet-dev</string>
</array>
```

Puis initialisez une fois, au démarrage de l'application :

```swift
Frak.initialize(
    FrakConfig(
        merchantId: "your-merchant-id",
        metadata: FrakMetadata(
            name: "Your Store",
            currency: .eur,
            homepageLink: "https://your-store.com"
        )
    )
)
```

Affichez la fenêtre de partage :

```swift
Button("Share and earn") { isSharing = true }
    .frakSharingSheet(isPresented: $isSharing, request: request) { result in
        // handle the outcome
    }
```

Et suivez une commande confirmée :

```swift
await client.tracking.purchase(
    customerId: "cust_123",
    orderId: "order_456",
    token: "a-unique-order-token"
)
```

[Guide de développement iOS](/developers/integration/ios/)

## Les liens profonds ont plus d'importance sur mobile

Un lien de parrainage s'ouvre dans un navigateur à moins que votre application ne le prenne en charge. Configurez les App Links sur Android (avec un fichier `assetlinks.json` publié) et les Universal Links ou un schéma d'URL personnalisé sur iOS, de sorte qu'un ami parrainé arrive dans votre application avec le parrainage intact. Les deux guides de développement détaillent les entrées exactes du manifeste et du fichier `Info.plist`.

## Les récompenses nécessitent toujours une vente confirmée

Suivre un achat depuis l'application indique à Frak qu'une commande est potentiellement en cours. La récompense est versée une fois que votre serveur confirme la commande à l'aide d'un webhook signé, exactement comme pour l'intégration web. Le jeton de commande envoyé depuis l'application doit correspondre à celui que votre serveur signe.

## Étapes suivantes

[Validation serveur](/fr/guides/platforms/custom/backend/)
  [Site web personnalisé](/fr/guides/platforms/custom/web/)
  [Ajouter des fonds](/fr/guides/dashboard/configure/funds/)
  [Créer une campagne](/fr/guides/campaigns/create/)