2020/3/24 : Dart : Asynchronous programming: futures, async, awaitの訳

Asynchronous programming: futures, async, await

何故非同期なコードが重要なのか?(Why asynchronous code matters)

非同期な処理は、他の処理が終わるのを待つ間、あなたのプログラムを完璧に機能させます。以下に一般的な非同期処理を示します。

  • ネットワークからデータを取ってくる。
  • データベースに書き込む。
  • ファイルからデータを読み込む。

Dartで非同期処理を行うために、Futureクラスとasync、awaitキーワードを使用します。

例:非同期関数の正しく無い使用例

下記のサンプルは非同期関数(fetchUserOrder())の間違った使い方の例です。あとであなたはasync、awaitキーワードを使用してこのサンプルを修正します。このサンプルを実行する前に、どこが間違いなのか考えてみましょう。結果はどうなるでしょうか?

sample1-1

// このサンプルはDartの非同期処理の間違ったコードです。

String createOrderMessage () {
  var order = fetchUserOrder();
  return 'Your order is: $order';
}

Future<String> fetchUserOrder() {
  // Imagine that this 

2020/3/20 Dart マップ(Maps)

一般的にマップ(map)はkeyとvalueを関連づけるオブジェクトです。keysとvaluesはあらゆる型のオブジェクトです。一つのmapの中の全てのkeyはユニークでなければなりませんが、valueは一つのmapの中に同じvalueがあっても構いません。Dartではマップ(map)に関してmapリテラルとMapクラスをサポートしています。


比較

Listは同じ値の要素があっても問題無い。

Setの各要素はユニークでなければならない。

Mapの各keyはユニークでなければならない。


sample1-1はシンプルなマップの例です。mapリテラルを用いてmapを生成しています。

sample1-1

var gifts = {
  // Key:    Value
  'first': 'partridge',
  'second': 'turtledoves',
  'fifth': 'golden rings'
};

var nobleGases = {
  2: 'helium',
  10: 'neon',
  18: 'argon',
};

mapクラスのコンストラクタを用いてsample1-1と同じmapを生成することもできます。(sample1-2)

sample1-2

var gifts = Map();
gifts['first'] 

2021/2/10 Use themes to share colors and font stylesの訳

Use themes to share colors and font styles

アプリ全体で色とフォントスタイルを共有するには、テーマ(theme)を使用します。

アプリ全体のテーマ(theme)を定義するか、アプリケーションの特定の部分の色とフォントスタイルを定義するThemeウィジェットを使用できます。

実際、アプリ全体のテーマは、MaterialAppによってアプリのルートで作成されたThemeウィジェットにすぎません。

テーマを定義したら、独自のウィジェット内で使用します。

Flutterのマテリアルウィジェットは、テーマを使用して、AppBar、ボタン、チェックボックスなどの背景色とフォントスタイルを設定します。


Creating an app theme

アプリ全体でテーマを共有するには、MaterialAppコンストラクターにThemeDataを提供します。

テーマ(theme)が提供されていない場合、Flutterは自動的にデフォルトのthemeを作成します。

MaterialApp(
  title: title,
  theme: ThemeData(
    // Define the default brightness and colors.
    brightness: Brightness.dark,
    primaryColor:

2020/3/7 Flutter BuildContext class

ウィジェットツリーの中での「ウィジェットの位置」を扱うクラス。

このクラスは、StatelessWidget.buildメソッドと、Stateオブジェクトのメソッドから使用できるメソッドを提供します。

BuildContextオブジェクトは(StatelessWidget.buildメソッドのような)WidgetBuilder関数に渡され、State.contextのメンバから利用できます。いくつかのスタティック関数(例えばshowDialogやTheme,ofなど)もまた、ウィジェットを呼び出す代わりの振る舞いのため、あるいは受け取ったcontextからデータを得るためにbuildcontextを受け取ります。

それぞれのウィジェットが自分のBuildContextを持っています。そしてそのBuildContextは、StatelessWidget.buildやState.build関数が返すウィジェットの親ウィジェットです。(そして工事中🏗)


In particular, this means that within a build method, the build context of the widget of the build method is not the same as the build context of the widgets returned by that build method.

特に、buildメソッド内で、…