Flutterラボ リリース3周年記念! プロコースが1ヶ月の料金で2ヶ月間受けられる、実質半額セール (2024年3月17日まで・先着)

Flutterラボの

プレミアム会員になる

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

2021.11.17

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

またFlutterにおける非同期処理の実装方法も併せて学習していきましょう!

Flutterラボ|動画で学ぶFlutter学習サイト Flutter・Dart・Firebaseに関するアプリ制作の技術を学ぶことができます。プログラミング初心者から経験者まで flutterlabo.tech

プログラムの処理の流れ

プログラムの処理の基本的な流れは、先に書かれている内容から後に書かれている内容の順番に進んでいきます。

この前提を理解した上で同期処理と非同期処理を理解していきましょう!

同期処理

同期処理とは、上に記載している基本的な処理の流れの通り、先に書かれている内容から後に書かれている内容の順番に進んでいく処理のことです。

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

まとめ

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

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

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

Flutterラボ 現役エンジニアが教えるFlutter学習! プログラミング初心者でもiOS・Android・WEBアプリ開発を学ぶことがで www.youtube.com