Slackコミュニティに
無料で参加する
Flutterラボの
プレミアム会員になる
【Flutter】 非同期処理とは? Futureメソッドを解説
2021.11.17
今回は同期処理と非同期処理の違いについてまとめていきます。
またFlutterにおける非同期処理の実装方法も併せて学習していきましょう!
プログラムの処理の流れ
プログラムの処理の基本的な流れは、先に書かれている内容から後に書かれている内容の順番に進んでいきます。
この前提を理解した上で同期処理と非同期処理を理解していきましょう!
同期処理
同期処理とは、上に記載している基本的な処理の流れの通り、先に書かれている内容から後に書かれている内容の順番に進んでいく処理のことです。
void function() {
int num = 0;
print(num);
num+= 1;
print(num);
}
//結果
0
1
非同期処理
非同期処理とは、時間のかかるような処理を実行中でも別の処理を行うことができる処理の方法です。(並列処理)
このような時間のかかる処理をDartではFutureというデータ型で扱います。
void futureFunction() {
int num = 0;
print(num);
Future(() async{
Future.delayed(Duration(seconds: 1));
num+= 1;
});
print(num);
}
//結果
0
0
非同期処理を同期処理として実行する方法
時間のかかる処理が完了した後に次の処理に移りたい時は、asyncとawaitを用いることで実現できます。
void futureFunction() async{
int num = 0;
print(num);
await Future(() async{
await Future.delayed(Duration(seconds: 1));
num+= 1;
});
print(num);
}
//結果
0
1
まとめ
コードが書かれている順番通りに処理が進む処理方法を同期処理、時間のかかる処理を別で実行しながら次の処理に進む処理方法を非同期処理と言います。
非同期処理をうまく活用することで、ユーザーにとって不本意な待ち時間を与えずに済みます。
ユーザー体験を向上するためにも必須な知識になっているのでぜひ理解しておいてもらえればと思います。
![GoogleMapを用いて地図アプリを作成する](https://firebasestorage.googleapis.com/v0/b/flutter-labo.appspot.com/o/course%2Fgoogle_map_app.png?alt=media&token=5f336158-09ad-4bd3-8e2f-6411ec59ef1f)
85min
プレミアム会員
見放題
GoogleMapを用いて地図アプリを作成する
2022.04.16
¥6,600
![【Dart】Stringからint, double, DateTimeに変換する](https://assets.st-note.com/production/uploads/images/34579094/rectangle_large_type_2_57f8b9d22b8edd5dd7bcca6d883ef3fb.jpeg)
【Dart】Stringからint, double, DateTimeに変換する
2020.09.14
![【Dart】【Flutter】List型(リスト)の使い方とよく使うメソッドまとめ](https://assets.st-note.com/production/uploads/images/34640890/rectangle_large_type_2_9cd3518ec86a8d45eb0db093426082d1.jpeg)
【Dart】【Flutter】List型(リスト)の使い方とよく使うメソッドまとめ
2020.09.18
![【Dart】【Flutter】DateTime型についてのまとめ](https://assets.st-note.com/production/uploads/images/35816882/rectangle_large_type_2_5d153bec6a1387e9a7cd068fa193bae4.jpeg)
【Dart】【Flutter】DateTime型についてのまとめ
2020.10.01
![【Dart】Map型の使い方とよく使うメソッドまとめ](https://assets.st-note.com/production/uploads/images/34593663/rectangle_large_type_2_444b0971465392f471f0be9b1ce9b91b.jpeg)
【Dart】Map型の使い方とよく使うメソッドまとめ
2020.09.13