Flutter Adapty SDK 3.10.0 への移行ガイド

Adapty SDK 3.10.0 はメジャーリリースであり、いくつかの改善が含まれていますが、移行作業が必要になる場合があります。

  1. makePurchase メソッドを、個別のパラメーターの代わりに AdaptyPurchaseParameters を使用するように更新する。
  2. AdaptyPaywall モデル内の vendorProductIdsproductIdentifiers に置き換える。

makePurchase メソッドの更新

makePurchase メソッドは、個別の subscriptionUpdateParams および isOfferPersonalized 引数の代わりに AdaptyPurchaseParameters を使用するようになりました。これにより、型の安全性が向上し、将来的に購入パラメーターを拡張しやすくなります。

- 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(),
+ );

追加のパラメーターが不要な場合は、次のようにシンプルに記述できます。

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

AdaptyPaywall モデルの使用方法の更新

vendorProductIds プロパティは非推奨となり、productIdentifiers が推奨されるようになりました。新しいプロパティは、単純な文字列の代わりに AdaptyProductIdentifier オブジェクトを返すため、プロダクト情報がより構造化されています。

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

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

AdaptyProductIdentifier オブジェクトは vendorProductId プロパティを通じてベンダープロダクト ID にアクセスでき、同等の機能を維持しながら将来の拡張に向けてより良い構造を提供します。

後方互換性

どちらの変更も後方互換性を維持しています。

  • makePurchase の旧パラメーターは非推奨ですが、引き続き機能します
  • vendorProductIds プロパティは非推奨ですが、引き続きアクセス可能です
  • 既存のコードは動作し続けますが、非推奨の警告が表示されます

新しい API を使用するようにコードを更新することを推奨します。これにより、将来の互換性が確保され、改善された型の安全性と拡張性のメリットを活用できます。