Aller au contenu principal
Version: Next

Démarrage rapide

Mettez en place l'Eixam Flutter SDK en cinq étapes.

1. Ajoutez la dépendance

Pour la version 0.1.0, utilisez le tag de release convenu fourni lors de la remise :

dependencies:
eixam_connect_flutter:
git:
url: https://github.com/eixam-tech/eixam-sdk-flutter
ref: <agreed-0.1.0-release-tag>
path: packages/eixam_connect_flutter

2. Importez le package

import 'package:eixam_connect_flutter/eixam_connect_flutter.dart';

3. Bootstrap du SDK

Votre backend doit générer la session signée — le secret de l'app ne doit jamais se trouver dans le client mobile.

Environnement standard

final sdk = await EixamConnectSdk.bootstrap(
const EixamBootstrapConfig(
appId: 'partner-app',
environment: EixamEnvironment.sandbox,
initialSession: EixamSession.signed(
appId: 'partner-app',
externalUserId: 'partner-user-123',
userHash: 'signed-session-hash',
),
),
);

Environnement personnalisé

final sdk = await EixamConnectSdk.bootstrap(
const EixamBootstrapConfig(
appId: 'partner-app',
environment: EixamEnvironment.custom,
customEndpoints: EixamCustomEndpoints(
apiBaseUrl: 'https://partner-api.example.com',
mqttUrl: 'ssl://partner-mqtt.example.com:8883',
),
),
);

:::info Session signée Le backend génère userHash en signant l'externalUserId avec le secret de l'app via HMAC-SHA256. Consultez Identity Signing pour des exemples d'implémentation. :::

4. Demandez les permissions

Les demandes de permissions sont des décisions explicites de l'app hôte — le SDK ne les déclenche pas de lui-même :

await sdk.requestLocationPermission();
await sdk.requestNotificationPermission();
await sdk.requestBluetoothPermission();

5. Utilisez le SDK

Déclencher un SOS :

await sdk.triggerSos(
const SosTriggerPayload(
message: 'Need assistance',
triggerSource: 'button_ui',
),
);

Connecter un dispositif :

await sdk.connectDevice(pairingCode: '123456');

Créer un contact d'urgence :

await sdk.createEmergencyContact(
name: 'Mountain Rescue Desk',
phone: '+34600000000',
email: 'rescue@example.com',
);

Notes importantes

attention
  • initialSession est optionnel. S'il est fourni, son appId doit correspondre à l'appId du bootstrap.
  • Ne passez pas customEndpoints à des environnements autres que custom.
  • Le bootstrap ne demande pas de permissions et ne déclenche pas d'actions sensibles à l'UX.