【Flutter】dio 5.0.0がリリースされたのでマイグレーションガイドなんかをね

Dart

概要

どうも、@daiki1003です!

先日、dioのサポートが終了したとして、Twitterを賑わせていましたね。
また、dioの作者である方から、dioのサポート終了と、dioxへの正式な引き継ぎIssueベースで発表されていました。
今では、dioxへの変更内容がdio5.0.0として反映されている状態です。

本記事では、そんな経緯で新たな旅路をスタートさせたdio 5.0.0へのマイグレーション内容をメモ的に記していこうかと思います。

・以前のDioを使っていたけど、何がどう変わっているのか?
・何を修正しなければいけないのか?

などが分かる記事になっているかなと思います。

筆者環境

名前バージョン
Flutter3.7.3
Dart2.19.2
dio(Before)4.0.6

コンパイルエラー

HttpClientAdapter

Before

dio.httpClientAdapter = DefaultHttpClientAdapter();

After

dio.httpClientAdapter = HttpClientAdapter();

BaseOptionsのtimeout指定がDurationに

Before

BaseOptions(
  baseUrl: '${Env.apiBaseUrl}/api/v1/',
  connectTimeout: 30000,
  sendTimeout: 30000,
  receiveTimeout: 30000,
)

After

BaseOptions(
  baseUrl: '${Env.apiBaseUrl}/api/v1/',
  connectTimeout: const Duration(seconds: 30),
  sendTimeout: const Duration(seconds: 30),
  receiveTimeout: const Duration(seconds: 30),
)

DioErrorType

enumの定義が変わっています。

BeforeAfter
DioErrorType.connectTimeoutDioErrorType.connectionTimeout
DioErrorType.responseDioErrorType.badResponse
DioErrorType.otherDioErrorType.unknown
DioErrorType.badCertificate
DioErrorType.connectionError

全体で見るとこの様に変わっています。

Before

enum DioErrorType {
  connectTimeout,
  sendTimeout,
  receiveTimeout,
  response,
  cancel,
  other,
}

After

enum DioErrorType {
  connectionTimeout,
  sendTimeout,
  receiveTimeout,
  badCertificate,
  badResponse,
  cancel,
  connectionError,
  unknown,
}

現状、筆者の元で変更しなければならないのはこの辺のみでした!

誰かのお役に立てば。

Twitterフォローお願いします

「次回以降も記事を読んでみたい!」
「この辺分からなかったから質問したい!」

そんな時は、是非Twitter (@daiki1003)Instagram (@ashdik_flutter)のフォローお願いします♪

Twitterコミュニティ参加お願いします

Twitterコミュニティ「Flutter lovers」を開設しました!
参加お待ちしております😁

☕️ Buy me a coffee

また、記事がとても役に立ったと思う人は
コーヒーを奢っていただけると非常に嬉しいです!
@daiki1003

コメント

タイトルとURLをコピーしました