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
initialSessionest optionnel. S'il est fourni, sonappIddoit correspondre à l'appIddu bootstrap.- Ne passez pas
customEndpointsà des environnements autres quecustom. - Le bootstrap ne demande pas de permissions et ne déclenche pas d'actions sensibles à l'UX.