Adapty Flutter SDK を v4.3 へ移行する

Adapty Flutter SDK 4.3 はデフォルトで Google Play のアプリ内メッセージを表示するようになり、一部のフローおよびオンボーディングイベントデータの Dart 型が変更されました。公開 API の削除や名称変更はないため、変更なしで 4.3 に対してアプリをコンパイルできます。動作を従来と同じに保つには、このガイドの各変更点を確認してください。

まだ 4.0 をお使いの場合は、まず v4.1 への移行 を完了してから、このガイドに進んでください。

クイックリファレンス

v4.1v4.3
Google Play メッセージはリクエストされないAndroid ではデフォルトで Google Play メッセージが表示され、フローの上にも表示される
フローイベントの整数パラメーターは Android で double として届く両プラットフォームで int として届く
オンボーディングのメールフィールドは AdaptyOnboardingsTextInput として届くAdaptyOnboardingsEmailInput として届く
オンボーディング入力を表示すると入力値が隠れる表示すると入力値が見える

インストール

pubspec.yaml の adapty_flutter を v4.3 に更新してください:

dependencies:
  adapty_flutter: ^4.3.0

アプリが Kids Mode を使用している場合は、代わりに adapty_flutter_kids を指定してください:

dependencies:
  adapty_flutter_kids: ^4.3.0

動作要件は 4.1 から変更ありません:Flutter 3.32.0(Dart 3.8.0)および iOS 15.0。詳細なセットアップ手順は Adapty SDK のインストール をご覧ください。

Google Play のメッセージがデフォルトで表示される

4.3 以降、SDK は activate 後にアプリの Activity が開始されるたびに、支払い拒否通知などの Google Play アプリ内メッセージをリクエストします。これには、アプリがフォアグラウンドに戻るタイミングや、フローやオンボーディングが開いたり閉じたりするタイミングも含まれるため、ペイウォールの上にメッセージが表示される場合があります。

アプリにとってこれで問題なければ、変更は不要です。メッセージを表示するタイミングを制御したい場合は、Android で手動処理を有効にして SDK を起動し、アプリに適したタイミングで showStoreMessages を呼び出してください:


final configuration = AdaptyConfiguration(apiKey: 'YOUR_PUBLIC_SDK_KEY');
if (Platform.isAndroid) {
  configuration.withStoreMessagesHandling(AdaptyStoreMessagesHandling.manual);
}
await Adapty().activate(configuration: configuration);

Android のみ手動処理を設定することで、iOS の動作を変えずに済みます。iOS 16 以降では、手動処理を設定すると、アプリが showStoreMessages を呼び出すまで App Store メッセージが保留されます。API の詳細については、ストアメッセージの制御を参照してください。

Warning

手動モードでは、ストアは自動的にメッセージを表示しません。アプリが showStoreMessages を呼び出さない限り、ユーザーに支払い拒否の通知が届くことはありません。

AndroidでのFlowイベントの数値パラメーターがintになりました

Androidでは、Flowのアナリティクスイベントの整数パラメーターがこれまでdoubleとして渡されていました。4.3以降は、iOSと同様にintとして渡されるようになります。これはflowViewDidReceiveAnalyticEventとAdaptyUIFlowPlatformViewのonDidReceiveAnalyticEventコールバック(フローの入力イベントの日時の値を含む)に影響します。

Androidではdoubleへのキャストが例外をスローするようになります。数値パラメーターはnumとして読み取ってください:

- final timestamp = params['value'] as double;
+ final timestamp = params['value'] as num;

オンボーディングのメールフィールドが AdaptyOnboardingsEmailInput として届くようになりました

4.3 以降、オンボーディングのメールフィールドは onboardingViewOnStateUpdatedAction および AdaptyUIOnboardingPlatformView の onStateUpdatedAction コールバックに AdaptyOnboardingsEmailInput として届くようになりました。以前は AdaptyOnboardingsTextInput として届いていました。テキストケースからメールを読み取るコードがある場合は、メールケースも処理するようにしてください。

  switch (input) {
    case AdaptyOnboardingsTextInput(:final value):
      // text fields
      break;
+   case AdaptyOnboardingsEmailInput(:final value):
+     // email fields
+     break;
    case AdaptyOnboardingsNumberInput(:final value):
      // number fields
      break;
  }

数値フィールドは AdaptyOnboardingsNumberInput として届くようになりました。4.3 以前は、更新がまったく届きませんでした。詳しくはオンボーディングのデータを処理するを参照してください。

オンボーディングの入力値が印刷出力に表示される

AdaptyOnboardingsInputParams または AdaptyOnboardingsInput を出力すると、入力された値が表示されるようになりました。アプリがこれらのオブジェクトをログに記録している場合は、ログを確認してください。ログに名前、メールアドレス、その他のユーザーが入力したデータが含まれる可能性があります。

4.3の新機能

これらの追加機能はコードの変更を必要としません: