ぽぴなび

知って感動した技術情報・生活情報や買ってよかったものの雑記です。

【Flutter】チュートリアル表示の tutorial_coach_mark パッケージを使う画面のIntegration testを行う

tutorial_coach_mark とは?

アプリの初回利用時などにおいて、ボタンやアイコンなどにフォーカスして使い方を示すためのパッケージ。

pub.dev

他の選択肢

Material DesignのFeature Discoveryを実装したパッケージも気になる。

fluttergems.dev

困ったところ

指定したWidgetにフォーカスが表示されたあとのアニメーションが永遠に続くためawait tester.pumpAndSettle()が永遠に完了しない(CircularProgressIndicatorなどもアニメーションが無限に続くWidgetのひとつ)。

対処法

いい感じのタイミングまでawait tester.pump();を何回も呼ぶ(コード内のi < 100100は適当)。

      // アニメーションが終わらないためNG
      // await tester.pumpAndSettle();

      // チュートリアルが表示されるまで待つ
      for (int i = 0; i < 100; i++) {
        await tester.pump();
      }

参考

上記for文をラップした関数は作らないことになったらしい。

github.com