質問編集履歴

6 誤記修正

fukazume

fukazume score 75

2019/01/25 13:48  投稿

Flutter, "Widget build(BuildContext context) {}" の冒頭Widgetはなぜ明示的に記述するのか
Flutter新規プロジェクトを作成したときに生成されるデフォルトmain.dartのbuildメソッドについて。
■調査した内容
[Widget — State — BuildContext — InheritedWidget(Medium)](https://medium.com/flutter-community/widget-state-buildcontext-inheritedwidget-898d671b7956)
[Widget class](https://docs.flutter.io/flutter/widgets/Widget-class.html)
[Introduction to widgets](https://flutter.io/docs/development/ui/widgets-intro)
[BuildContext class](https://docs.flutter.io/flutter/widgets/BuildContext-class.html)
[build method](https://docs.flutter.io/flutter/widgets/State/build.html)
■現状の理解
画面描画するときにこのbuildメソッドを使うんだな、という程度のグラグラな認識です。
■質問
1) 冒頭のabstract class "Widget" (だけ?)はなぜ明示的に宣言されているのですか?一応、"Widget"部を削除してもコードが正常動作することは確認しました。
2) build(BuildContext context)は、abstract class BuildContextとcontextがbuildメソッドの引数という構造でしょうか?
3) 上記、各トークンの意味を踏まえ、この@override、Widgetクラス、buildメソッドを平易な表現でご解説いただけると大変ありがたいです。どうぞよろしくお願い申し上げます。
```Flutter
@override
Widget build(BuildContext context){
 return MaterialApp(
     title: 'Flutter Demo',
     theme: ThemeData(       
       primarySwatch: Colors.blue,
     ),
     home: MyHomePage(title: 'Flutter Demo Home Page'),
   );
}
```
  • Android

    10447 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • iOS

    7361 questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Dart

    616 questions

    Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

  • Flutter

    986 questions

    Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

5 調査内容の追記

fukazume

fukazume score 75

2019/01/24 19:08  投稿

Flutter, "Widget build(BuildContext context) {}" の冒頭Widgetはなぜ明示的に記述するのか
Flutter新規プロジェクトを作成したときに生成されるデフォルトmain.dartのbuildメソッドについて。
■調査した内容
以下のドキュメントを読みましたが、直接的に当質問に対応する箇所を見つけることができませんでした。概念は理解したのですが、実体的な理解までは至っておりません。
以下の公式ドキュメントやMedium投稿等を読みましたが、直接的に当質問に対応する箇所を見当たりませんでした。概念は理解したのですが、実体的な理解までは至っておりません。
[Widget — State — BuildContext — InheritedWidget(Medium)](https://medium.com/flutter-community/widget-state-buildcontext-inheritedwidget-898d671b7956)
[Widget class](https://docs.flutter.io/flutter/widgets/Widget-class.html)
[Introduction to widgets](https://flutter.io/docs/development/ui/widgets-intro)
[BuildContext class](https://docs.flutter.io/flutter/widgets/BuildContext-class.html)
[build method](https://docs.flutter.io/flutter/widgets/State/build.html)
■現状の理解
なんとなく画面描画するときにこのbuildメソッドを使うんだな、という程度のグラグラな認識です。
画面描画するときにこのbuildメソッドを使うんだな、という程度のグラグラな認識です。
■質問
1) 冒頭のabstract class "Widget" (だけ?)はなぜ明示的に宣言されているのですか?一応、"Widget"部を削除してもコードが正常動作することは確認しました。
2) build(BuildContext context)は、abstract class BuildContextとcontextがbuildメソッドの引数という構造でしょうか?
3) 上記、各トークンの意味を踏まえ、この@override、Widgetクラス、buildメソッドを平易な表現でご解説いただけると大変ありがたいです。どうぞよろしくお願い申し上げます。
```Flutter
@override
Widget build(BuildContext context){
 return MaterialApp(
     title: 'Flutter Demo',
     theme: ThemeData(       
       primarySwatch: Colors.blue,
     ),
     home: MyHomePage(title: 'Flutter Demo Home Page'),
   );
}
```
  • Android

    10447 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • iOS

    7361 questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Dart

    616 questions

    Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

  • Flutter

    986 questions

    Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

4 調査内容の追記

fukazume

fukazume score 75

2019/01/24 19:03  投稿

Flutter, "Widget build(BuildContext context) {}" の冒頭Widgetはなぜ明示的に記述するのか
Flutter新規プロジェクトを作成したときに生成されるデフォルトmain.dartのbuildメソッドについて。
 
■調査した内容  
以下のドキュメントを読みましたが、直接的に当質問に対応する箇所を見つけることができませんでした。概念は理解したのですが、実体的な理解までは至っておりません。  
[Widget class](https://docs.flutter.io/flutter/widgets/Widget-class.html)  
[Introduction to widgets](https://flutter.io/docs/development/ui/widgets-intro)  
[BuildContext class](https://docs.flutter.io/flutter/widgets/BuildContext-class.html)  
[build method](https://docs.flutter.io/flutter/widgets/State/build.html)  
 
■現状の理解
なんとなく画面描画するときにこのbuildメソッドを使うんだな、という程度のグラグラな認識です。
■質問
1) 冒頭のabstract class "Widget" (だけ?)はなぜ明示的に宣言されているのですか?一応、"Widget"部を削除してもコードが正常動作することは確認しました。
2) build(BuildContext context)は、abstract class BuildContextとcontextがbuildメソッドの引数という構造でしょうか?
3) 上記、各トークンの意味を踏まえ、この@override、Widgetクラス、buildメソッドを平易な表現でご解説いただけると大変ありがたいです。どうぞよろしくお願い申し上げます。
 
 
```Flutter
@override
Widget build(BuildContext context){
 return MaterialApp(
     title: 'Flutter Demo',
     theme: ThemeData(       
       primarySwatch: Colors.blue,
     ),
     home: MyHomePage(title: 'Flutter Demo Home Page'),
   );
}
```
```
  • Android

    10447 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • iOS

    7361 questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Dart

    616 questions

    Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

  • Flutter

    986 questions

    Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

3 タイトルをより直接的に変更

fukazume

fukazume score 75

2019/01/24 18:56  投稿

Flutter新規プロジェクトを作成したときに生成されるデフォルトmain.dartのbuildメソッドについて。
■現状の理解
なんとなく画面描画するときにこのbuildメソッドを使うんだな、という程度のグラグラな認識です。
■質問
1) 冒頭のabstract class "Widget" (だけ?)はなぜ明示的に宣言されているのですか?一応、"Widget"部を削除してもコードが正常動作することは確認しました。
2) build(BuildContext context)は、abstract class BuildContextとcontextがbuildメソッドの引数という構造でしょう
2) build(BuildContext context)は、abstract class BuildContextとcontextがbuildメソッドの引数という構造でしょう
3) 上記、各トークンの意味を踏まえ、この@override、Widgetクラス、buildメソッドを平易な表現でご解説いただけると大変ありがたいです。どうぞよろしくお願い申し上げます。
```Flutter
@override
Widget build(BuildContext context){
 return MaterialApp(
     title: 'Flutter Demo',
     theme: ThemeData(       
       primarySwatch: Colors.blue,
     ),
     home: MyHomePage(title: 'Flutter Demo Home Page'),
   );
}
```
  • Android

    10447 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • iOS

    7361 questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Dart

    616 questions

    Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

  • Flutter

    986 questions

    Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

2 追記

fukazume

fukazume score 75

2019/01/24 18:38  投稿

Flutter, "Widget build(BuildContext context) {}" を解説頂きたい
Flutter新規プロジェクトを作成したときに生成されるデフォルトmain.dartのbuildメソッドについて。
■現状の理解
なんとなく画面描画するときにこのbuildメソッドを使うんだな、という程度のグラグラな認識です。
■質問
1) 冒頭の "Widget" (だけ?)はなぜ明示的に宣言されているのですか?一応、"Widget"部を削除してもコードが正常動作することは確認しました。
1) 冒頭のabstract class "Widget" (だけ?)はなぜ明示的に宣言されているのですか?一応、"Widget"部を削除してもコードが正常動作することは確認しました。
2) build(BuildContext context)は、abstract class BuildContextとcontextがbuildメソッドの引数という構造でしょう?
3) 上記、各トークンの意味を踏まえ、この@override、Widgetクラス、buildメソッドを平易な表現でご解説いただけると大変ありがたいです。どうぞよろしくお願い申し上げます。
```Flutter
@override
Widget build(BuildContext context){
 return MaterialApp(
     title: 'Flutter Demo',
     theme: ThemeData(       
       primarySwatch: Colors.blue,
     ),
     home: MyHomePage(title: 'Flutter Demo Home Page'),
   );
}
```
  • Android

    10447 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • iOS

    7361 questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Dart

    616 questions

    Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

  • Flutter

    986 questions

    Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

1 題名変更

fukazume

fukazume score 75

2019/01/24 12:28  投稿

Flutter, "Widget build(BuildContext context) {}" を解説頂きたい
Flutter, "Widget build(BuildContext context) {}" を解説頂きたい
Flutter新規プロジェクトを作成したときに生成されるデフォルトmain.dartのbuildメソッドについて。
■現状の理解
なんとなく画面描画するときにこのbuildメソッドを使うんだな、という程度のグラグラな認識です。
■質問
1) 冒頭の "Widget" (だけ?)はなぜ明示的に宣言されているのですか?一応、"Widget"部を削除してもコードが正常動作することは確認しました。
2) build(BuildContext context)は、abstract class BuildContextとcontextがbuildメソッドの引数という構造でしょう?
3) 上記、各トークンの意味を踏まえ、この@override、Widgetクラス、buildメソッドを平易な表現でご解説いただけると大変ありがたいです。どうぞよろしくお願い申し上げます。
```Flutter
@override
Widget build(BuildContext context){
 return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
```
  • Android

    10447 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • iOS

    7361 questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Dart

    616 questions

    Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

  • Flutter

    986 questions

    Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る