概要
どうも、@daiki1003です!先日、dioのサポートが終了したとして、Twitterを賑わせていましたね。
また、dioの作者である方から、dioのサポート終了と、dioxへの正式な引き継ぎがIssueベースで発表されていました。
今では、dioxへの変更内容がdioに5.0.0として反映されている状態です。
本記事では、そんな経緯で新たな旅路をスタートさせたdio 5.0.0へのマイグレーション内容をメモ的に記していこうかと思います。
・以前のDioを使っていたけど、何がどう変わっているのか?
・何を修正しなければいけないのか?
などが分かる記事になっているかなと思います。
筆者環境
| 名前 | バージョン |
| Flutter | 3.7.3 |
| Dart | 2.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の定義が変わっています。
| Before | After |
| DioErrorType.connectTimeout | DioErrorType.connectionTimeout |
| DioErrorType.response | DioErrorType.badResponse |
| DioErrorType.other | DioErrorType.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
また、記事がとても役に立ったと思う人はコーヒーを奢っていただけると非常に嬉しいです!



コメント