Flutter : ajouter Appwin à ton app
Comment ajouter Appwin à ton app Flutter avec les paquets pub.dev.
Avant de commencer
- Une app créée dans le dashboard
- Ton App ID
- Dart SDK 3.9.2+, Flutter 3.3+
Compose ton intégration
Choisis les produits que tu veux. La liste de dépendances et le code d'initialisation suivent ton choix.
Compose ton intégration
AppwinCore est toujours là - il porte l'identité, la session et le client réseau. Choisis ce que tu ajoutes par-dessus.
Utilise un prompt
Dépendances
flutter pub add appwin_core appwin_community
cd ios && pod install
Initialisation
import 'package:appwin_core/appwin_core.dart';
import 'package:appwin_community/appwin_community.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await AppwinCore.instance.configure(
appId: const String.fromEnvironment('APPWIN_APP_ID'),
);
await AppwinCore.instance.bootstrapSession();
final community = await AppwinCommunity.instance.initialize();
runApp(const MyApp());
}
- Chaque initialize() répond au lieu de lever une erreur. Conditionne ton propre point d'entrée à ce résultat : le SDK ne possède pas ta navigation, il ne peut pas cacher ton onglet à ta place.
- Le paramètre est appId en Flutter, là où les SDK natifs l'appellent projectAppId. Même valeur, et c'est la seule divergence de nommage entre les quatre plateformes.
Passe l'App ID au build :
flutter run --dart-define=APPWIN_APP_ID=624486b8-79c1-44ce-b3cf-454ef61da11d
Affiche-le à l'écran
initialize() dit si un produit a le droit de s'ouvrir. Où le poser, c'est à
toi : le SDK ne possède pas ta navigation.
| Paquet | Ce que tu poses |
|---|---|
appwin_community | AppwinCommunityView() |
appwin_support | AppwinSupportMessengerView() |
appwin_notifications | Pas d'UI - registerPushToken(...) au lancement |
if (!ready) return const SizedBox.shrink();
return const AppwinCommunityView();
Un produit refusé se plaint bruyamment en debug, discrètement en release, et retombe sur une vue neutre si tu le présentes quand même. Il ne plante jamais, et ne reste jamais silencieusement sans rien faire.
Rattache ton utilisateur
Facultatif, et c'est ce qui fait qu'une personne est la même dans Community et
dans Support, et d'un appareil à l'autre. L'externalId est le tien -
celui de ta base.
await AppwinCore.instance.identify(externalId: user.id);
await AppwinCore.instance.bootstrapSession(externalId: user.id);
await AppwinCore.instance.signOut(); // à la déconnexion
identify seul ne suffit pas : c'est le rejeu du bootstrap qui émet un token
portant la nouvelle identité. Sans lui, les appels suivants restent sur la
session anonyme jusqu'au prochain lancement.