purpi_kit 2.0.18
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.