見出し画像

【Flutter】 非同期処理とは? Futureメソッドを解説

今回は同期処理と非同期処理の違いについてまとめていきます。

また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

まとめ

コードが書かれている順番通りに処理が進む処理方法を同期処理、時間のかかる処理を別で実行しながら次の処理に進む処理方法を非同期処理と言います。

非同期処理をうまく活用することで、ユーザーにとって不本意な待ち時間を与えずに済みます。

ユーザー体験を向上するためにも必須な知識になっているのでぜひ理解しておいてもらえればと思います。


この記事が気に入ったらサポートをしてみませんか?