ふとFlutterの最初のコメントは何を書いてあるのだろうと思ったので、翻訳してまとめてみました。
このコメントって理解に役立つ事書いてあるのだろうと思いつつ、すぐ消してしまいますよね。
翻訳に使用したもの
DeepL(ディープエルと呼びます。)
Google翻訳よりも日本語らしく翻訳してくれるので、オススメです。
main.dartを翻訳したコード
main.dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// このウィジェットはアプリケーションのルートです。
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// これはあなたのアプリケーションのテーマです。
//
// 「flutter run」でアプリケーションを実行してみてください。
// アプリケーションに青いツールバーが表示されているのがわかります。
// そして、アプリを終了させずに、下のprimarySwatchをColors.greenに
// 変更してから「ホットリロード」を呼び出してみてください
// (「flutter run」を実行したコンソールで「r」を押すか、Flutter IDEで「ホットリロード」に変更内容を保存しておくだけです)。
// カウンタがゼロにリセットされていないことに注意してください。
primarySwatch: Colors.blue,
// これにより、ビジュアルの密度がアプリを実行するプラットフォームに適応するようになります。
// デスクトップ・プラットフォームでは、モバイル・プラットフォームに比べて、コントロールが小さく、より近くに(より密に)なります。
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
// このウィジェットはアプリケーションのホームページです。
// これはステートフルで、表示方法に影響を与えるフィールドを含むステートオブジェクト(以下で定義)を持っています。
// このクラスは状態の設定です。
// 親(この場合はAppウィジェット)から提供された値(この場合はタイトル)を保持し、Stateのビルドメソッドで使用されます。
// Widgetサブクラスのフィールドは常に "final "とマークされています。
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
// この setState の呼び出しは、この State で何かが変更されたことを Flutter フレームワークに伝え、
// 以下のビルドメソッドを再実行して、更新された値を表示に反映できるようにします。
// setState() を呼び出さずに _counter を変更した場合、ビルドメソッドは再び呼び出されないので、何も起こらないように見えます。
_counter++;
});
}
@override
Widget build(BuildContext context) {
// このメソッドは setState が呼び出されるたびに再実行されます。
//
// Flutterフレームワークは、ビルドメソッドの再実行を高速化するために最適化されており、
// ウィジェットのインスタンスを個別に変更するのではなく、更新が必要なものは何でも再構築できるようになっています。
return Scaffold(
appBar: AppBar(
// ここでは、App.buildメソッドによって作成されたMyHomePageオブジェクトの値を取り、それを使用してアプリバーのタイトルを設定します。
title: Text(widget.title),
),
body: Center(
// Centerはレイアウトウィジェットです。
// 一つの子ウィジェットを、親ウィジェットの真ん中に配置します。
child: Column(
// Columnもレイアウトウィジェットです。
// 子ウィジェットのリストを取って縦に並べる。
// デフォルトでは、子ウィジェットが水平に収まるようにサイズを調整し、
// 親ウィジェットと同じくらいの高さになろうとします。
//
// 「debug painting」を呼び出して(コンソールで「p」を押し、
// Android StudioのFlutter Inspectorから「Toggle Debug Paint」アクションを選択するか、
// Visual Studio Codeの「Toggle Debug Paint」コマンドを選択する)、各ウィジェットのワイヤーフレームを表示します。
//
// Columnには様々なプロパティがあり、それ自体のサイズや子の位置を制御することができます。
// ここではmainAxisAlignmentを使用して、子ウィジェットを垂直方向に中心に置いています
// Columnsが垂直なので、ここでの主軸は垂直軸です(クロス軸は水平軸です)。
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
), // この末尾のカンマは、ビルドメソッドの自動書式設定をより簡単にします。
);
}
}
まとめ
この記事が良いと思った方は、LGTMをしていただければ嬉しいです!
フォローも是非お願い致します(^^)