purpi_kit 2.0.18 copy "purpi_kit: ^2.0.18" to clipboard
purpi_kit: ^2.0.18 copied to clipboard

SDK Flutter Purpi : privilèges, abonnements et paiements in-app, intégrable comme widget dans une app hôte ou lançable en application standalone.

purpi_kit #

SDK Flutter Purpi : privilèges, abonnements et paiements in-app. Intégrable comme widget dans une app hôte existante, ou lançable en application standalone.

Installation #

flutter pub add purpi_kit
dependencies:
  purpi_kit: ^2.0.18

Utilisation #

Intégration dans une app hôte #

import 'package:purpi_kit/purpi_kit.dart';

const purpiConfig = PurpiConfig(
  flavor: Flavor.prod,
  storeAuthEmail: String.fromEnvironment('PURPI_STORE_AUTH_EMAIL'),
  storeAuthPassword: String.fromEnvironment('PURPI_STORE_AUTH_PASSWORD'),
);

// Au démarrage de l'app hôte, ou juste avant d'ouvrir Purpi
await PurpiKit.initialize(purpiConfig);

// Option A : ouvrir Purpi dans un nouvel écran
await PurpiKit.open(context, config: purpiConfig);

// Option B : embarquer le widget (onglet, route, etc.)
Navigator.push(
  context,
  MaterialPageRoute(builder: (_) => PurpiKit.app(config: purpiConfig)),
);

En application standalone #

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await PurpiKit.runStandalone(config: purpiConfig);
}

Un exemple complet est disponible dans example/.

Configuration #

Aucune clé API ni identifiant n'est embarqué dans le package : tout est fourni par l'app hôte via PurpiConfig, idéalement avec --dart-define.

Champ Rôle
flavor Flavor.prod ou Flavor.preprod (choisit l'URL d'API)
storeAuthEmail / storeAuthPassword Identifiants du store Purpi
googlePlacesApiKey Autocomplétion d'adresse (Google Places) ; sans clé, le champ reste saisissable
appsFlyerDevKey / appsFlyerAppId Attribution AppsFlyer ; sans dev key, le SDK n'est pas initialisé
googleIosClientId / googleServerClientId OAuth client IDs Google Sign-In de votre app
showTopBar Affiche la top bar Purpi (logo + menu)
externalAuthRequest Auth déléguée par l'app hôte, à la place de l'écran de login
flutter run \
  --dart-define=PURPI_STORE_AUTH_EMAIL=... \
  --dart-define=PURPI_STORE_AUTH_PASSWORD=... \
  --dart-define=PURPI_GOOGLE_PLACES_API_KEY=... \
  --dart-define=PURPI_APPSFLYER_DEV_KEY=... \
  --dart-define=PURPI_APPSFLYER_APP_ID=... \
  --dart-define=PURPI_GOOGLE_IOS_CLIENT_ID=... \
  --dart-define=PURPI_GOOGLE_SERVER_CLIENT_ID=...

API publique #

Classe / méthode Rôle
PurpiKit.initialize() DI, IAP, AppsFlyer, config API
PurpiKit.app() Widget MaterialApp.router Purpi
PurpiKit.open() Initialise puis pousse Purpi sur la navigation courante
PurpiKit.runStandalone() runApp avec Purpi
PurpiConfig Flavor, credentials, clés API, options d'UI
Flavor prod / preprod

Plateformes #

Android et iOS. Le SDK utilise Google Maps, l'achat in-app, la caméra (scan QR) et Google/Apple Sign-In : pensez à déclarer les permissions et clés natives correspondantes dans votre app hôte.

Licence #

MIT — voir LICENSE.