Guide de migration vers Flutter Adapty SDK 3.10.0

Adapty SDK 3.10.0 est une version majeure qui apporte des améliorations nécessitant toutefois quelques étapes de migration de votre part :

  1. Mettre à jour la méthode makePurchase pour utiliser AdaptyPurchaseParameters à la place des paramètres individuels.
  2. Remplacer vendorProductIds par productIdentifiers dans le modèle AdaptyPaywall.

Mettre à jour la méthode makePurchase

La méthode makePurchase utilise désormais AdaptyPurchaseParameters à la place des arguments individuels subscriptionUpdateParams et isOfferPersonalized. Cela offre une meilleure sécurité des types et permet d’étendre les paramètres d’achat à l’avenir.

- final purchaseResult = await adapty.makePurchase(
-   product: product,
-   subscriptionUpdateParams: subscriptionUpdateParams,
-   isOfferPersonalized: true,
- );

+ final parameters = AdaptyPurchaseParametersBuilder()
+   ..setSubscriptionUpdateParams(subscriptionUpdateParams)
+   ..setIsOfferPersonalized(true)
+   ..setObfuscatedAccountId('your-account-id')
+   ..setObfuscatedProfileId('your-profile-id');

+ final purchaseResult = await adapty.makePurchase(
+   product: product,
+   parameters: parameters.build(),
+ );

Si aucun paramètre supplémentaire n’est nécessaire, vous pouvez simplement utiliser :

final purchaseResult = await adapty.makePurchase(
  product: product,
);

Mettre à jour l’utilisation du modèle AdaptyPaywall

La propriété vendorProductIds a été dépréciée au profit de productIdentifiers. La nouvelle propriété retourne des objets AdaptyProductIdentifier au lieu de simples chaînes de caractères, offrant une structure d’informations produit plus cohérente.

- paywall.vendorProductIds.map((vendorId) => 
-   ListTextTile(title: vendorId)
- ).toList()

+ paywall.productIdentifiers.map((productId) => 
+   ListTextTile(title: productId.vendorProductId)
+ ).toList()

L’objet AdaptyProductIdentifier donne accès à l’identifiant de produit du vendor via la propriété vendorProductId, conservant ainsi la même fonctionnalité tout en offrant une meilleure structure pour les évolutions futures.

Compatibilité ascendante

Les deux modifications maintiennent la compatibilité ascendante :

  • Les anciens paramètres de makePurchase sont dépréciés mais restent fonctionnels
  • La propriété vendorProductIds est dépréciée mais reste accessible
  • Le code existant continuera de fonctionner, même si des avertissements de dépréciation apparaîtront

Nous vous recommandons de mettre à jour votre code pour utiliser les nouvelles API afin de garantir la compatibilité future et de profiter de la meilleure sécurité des types et extensibilité offertes.