flutter first

flutter セットアップ

リンク

インストール

$ git clone https://github.com/flutter/flutter.git -b stable

$ export PATH="$PATH:/PATH_TO_Flutter_Repo/bin"
  • (optional) 開発用バイナリの事前ダウンロード
$ flutter precache
  • 確認
$ flutter doctor

作成と起動(シンプル)

$ flutter create my_app
  • android simulatorの起動
// デバイス一覧
$ emulator -list-avds
or 
$ avdmanager list avd

// エミュレータの起動
$ emulator -avd Pixel_3a_API_29

// エミュレータの起動で
// > PANIC: Missing emulator engine program for 'x86' CPU.
// と出る場合は、 /PATH_TO_SDK/tools/emulator ではなく /PATH_TO_SDK/emulator/emulator を 利用する。
  • ios simulatorの起動
$ open -a Simulator
  • flutterで実行可能なデバイス一覧
$ flutter devices
> Android SDK built for x86 • emulator-5554                        • android-x86 • Android 10 (API 29) (emulator)
  • 実行
$ flutter --device-id emulator-5554 run

Componentの種類

Componentの種類 内容
MaterialApp Material用のApplicationクラス
Scaffold Material用のLayoutクラス(AppBarやDrawerのような要素を表示できる)
AppBar ナビゲーションヘッダーに相当
Container PlaneなViewに相当
Text TextView
ListView ListView
Image.asset ImageView
EdgeInsets paddingなどに利用する
Row 横方向に小要素を配置していく
ListTile 事前に要素を決められたRowのようなもの
Column 縦方向に小要素を配置していく
Expanded RowやColumnをWrap(子要素に含む形)する形で利用する。スペースいっぱいに表示することができる。
Icon IconData用のImageViewに相当
MainAxisAlignment 主軸(Rowなら横)の方向に対して、自分(要素)自身がどこにいるべきか?(center・start・end・etc…)
CrossAxisAlignment 主軸(Rowなら横)の直交方向に対して、自分(要素)自身がどこにいるべきか?(center・start・end・etc…)
MainAxisSize 自分(要素)自身が親要素いっぱいに描画(sizing)されるべきか、最小であるべきか?(max・min)
Text#softWrap falseの場合、水平空間が無限にあるかのようにテキストをレイアウトする。
Widget UI(レイアウト要素やUI要素)を構築するための基底クラス
Center 子要素をCenterに配置できるWidget
SizedBox 子要素のサイズを制限できる。
Card カード表示を行うためのWidget
GridView GridView
Stack UIの上にUIが重なるようなUI実装をするためのWidget

Topic

### Resourceを読み込む(assets)

flutter:
  assets:
    - images/lake.jpg

どのWidgetがデータを管理すべきかのFlutterのおすすめは?

  • チェックのON/OFFなどのユーザーデータ・・・親Widget
  • ビジュアルに関するデータ(アニメーションなど)・・・Widget自身
  • 不確かな場合・・・とりあえず親Widget

デバッグ

レイアウトを枠付きで可視化(アプリの再起動が必要)

import 'package:flutter/rendering.dart' show debugPaintSizeEnabled; //・・・(1)
void main() {
  debugPaintSizeEnabled = true; //・・・(2)
  runApp(MyApp  ());
}

flutterで利用するライブラリ一覧

https://pub.dartlang.org/flutter/