世界最大級のオンライン学習サービス「Udemy(ユーデミー)」とは?

【Flutter】main()とrunApp()の違いは?

こんにちは、フラメルです。

今回はmain()runApp()の違いについて紹介します。

目次

main()の役割

main()はFlutter(Dart)におけるエントリーポイントです。

よってmain()で書いた処理が上から順に実行されます。下記コードではプログラムを実行すると「Hello World」の後に「Good Afternoon」が表示されます。

void main() {
  print('Hello World');
  print('Good Afternoon');
}

runApp()の役割

runApp()はウィジェットツリーの始まり(ルート)を定め、任意のウィジェットをスクリーンに反映できます。

下記コードではMyApp()がウィジェットツリーのルートとなりMyApp()がスクリーンに反映されます。

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Flutter')),
        body: Center(
          child: Text(
            'Hello World',
            style: TextStyle(
              fontSize: 30,
            ),
          ),
        ),
      ),
    );
  }
}

結論:Flutterではmain()・runApp()の両方が必要

main()はエントリーポイント、runApp()はウィジェットツリーの始まりを定めてスクリーンに反映することからFlutterでアプリ開発をしていく上で両方とも必要となります。

以上です。

目次