FlutterでRetryというライブラリを使ってみました

はじめに

エキサイト株式会社の髙野です。
今回はFlutterでretryというライブラリを使用したのでこのretryの使用方法をご紹介します。

環境

Flutter: 3.7.0
retry: 3.1.0

使用方法

final r = RetryOptions(maxAttempts: 8);
final response = await r.retry(
  () => http.get('https://example.com').timeout(Duration(seconds: 5)),
  retryIf: (e) => e is SocketException || e is TimeoutException,
);
print(response.body);

リンク先に載っているサンプルです。基本的にはAPIリクエストなどで使用するかと思います。
RetryOptions には

  • リトライ回数(maxAttempts)

  • リトライの間に挟む時間(delayFactor)

  • リトライの最大時間(maxDelay)

  • リトライ時間のランダム遅延率(randomizationFactor) 以上があり、これらを設定することができます。

Clientを呼び出すところで使用するケースが多いかと思いますのでその場合は retryIf でキャッチしたい独自Exceptionなどを作成したりしてthrowするようにしましょう。

結果

実際にRetry処理にこのライブラリを使用しなかった場合、再起処理を書いたりtry, catchを使用して複雑になってしまうかと思います。それを考慮するだけでなくコードを簡略に書くことでできました。
今後も弊事業部でも使用を続けていこうかと思います。

最後に

エキサイトではフロントエンジニア、バックエンドエンジニア、アプリエンジニアを随時募集しております。募集にはありませんが、長期インターンも歓迎していますので、興味があれば連絡いただければと思います。

カジュアル面談はこちらになります! meety.net

募集職種一覧はこちらになります!(カジュアルからもOK) www.wantedly.com