Flutter、Dartに関してメモ


Flutter、Dartに関してメモ

flutter, Dart...に関して覚えておきたいけど、忘れた時に見直すためメモしておく。

pubspec.yamlのフィールド

フィールド 用途
name アプリ名
description アプリの説明
version アプリのバージョン番号
environment Dart/Flutter SDKのバージョン制約
dependencies 使うパッケージ
dev_dependencies ​ 開発時のみ使うパッケージ
flutter ​ Flutterの設定(アセットなど)

pubspec.yamlのバージョン指定方法

pubspec.yaml
dependencies:
  flutter:
   sdk: flutter
  cupertino_icons: ^0.1.2
  shared_preferences: ^0.5.12+2
フィールド 意味
any バージョン指定ない(非推奨)
1.2.3 1.2.3のみ
>=1.2.3 1.2.3以上
<1.2.3 1.2.3未満
^1.2.3 1.2.3以上、2.0.0未満
>=1.2.3 <2.0.0 1.2.3以上、2.0.0未満

flutterのコマンド

コマンド 用途
flutter pub get 未取得のパッケージ取得
flutter pub upgrade 最新版のパッケージ取得
flutter pub outdated 更新可能なパッケージのチェック
flutter pub deps 依存関係のチェック

Dart 変数

型を固定しない場合:dynamic

aaa.dart
dynamic val = 'val';

初期化で値によって型が決まる場合:var

aaa.dart
var val = 'val'; // 文字列となる

初期化後、変更させたくない場合:final

aaa.dart
final val = 'val'; // これ以降、変更時エラー

初期化後、変更させたくない場合:const

aaa.dart
const val = 'val'; // これ以降、変更時エラー

(コンパイル時に確定した値を定数として持つ)

*型の調査には、runtimeTypeプロパティを使用

aaa.dart
var val = 'val';
print(val.runtimeType); // String と表示される

組み込み型

aaa.dart
String val1 = 'val';
int val2 = 12;
double val3 = 12.55;
bool val4 = true;
List val5 = ['a', 'b', 'c'];
Set val6 = {'a', 'b', 'c'}; // 重複を許可しない配列
Map val7 = {
  'num1': 'one',
  'num2': 'two',
  'num3': 'three'
}; // Key: Value

Dart 関数のパラメータ

位置パラメータ

void aaaBcc(bool a, bool b){}

aaaBcc(true, false);

名前付きパラメータ

void aaaBcc({bool ddd, bool fff}){}

aaaBcc(ddd: true, fff: false);

オプションパラメータ

void aaaBcc(bool ddd, [bool fff=false]){}

aaaBcc(bool ddd, bool fff=false );

Dart 演算子

算術演算子

演算子 意味
+ 足し算
- 引き算
* 掛け算
/ 割り算(double)
~/ 割り算(int)
% 余り(modulo)

インクリメント、デクリメント演算子

演算子 意味
++var 1加算してから使用
var++ 使用してから1加算
--var 1減算してから使用
var-- 使用してから1減算

複合代入演算子

演算子 意味
a+=b a = a + b
a op= b a = a op b

*opは算術演算子

割り当て演算子

演算子 意味
a ??= b aがnullであればbを代入
a ?? b aがnullであればbを実行

条件式演算子

演算子 意味
x ? a : b xがtrueの時、aを実行、falseの時は、bを実行

比較演算子

演算子 意味
a == b aとbが同値
a != b aとbが異なる値
a > b aがbより大きい
a < b aがbより小さい
a >= b aがb以上
a <= b aがb以下

論理演算子

演算子 意味
! NOT 否定
&& AND 論理積

型テスト演算子

演算子 意味
is 指定した型をもつ
is! 指定した型をもたない

Dart 条件分岐

if - else, else if

if() {
...
} else if {
...
} else {
...
}

for, for-in

for (var i = 0; i < 10; i++) {
...
}

var arr = [1, 2, 3];
for (var x in arr) {
...
}

arr.forEach(
  (val) => arr.ele()
);

while, do-while

while() {
...
}

do {
...
} while();

break, continue

while() {
  if(aaa = 'aaa'){
    break;
  }
}

while() {
  if(bbb = 'bbb'){
    continue;
  }
}

switch-case

switch(aaa){
  case 'aaa':
    ...
    break;
  case 'bbb':
    ...
    break;
  case 'ccc':
  case 'ddd':
    ...
    break;
  default:
    ...
}

例外処理

例外クラスを指定した場合

throw FormatException('Expected at least 1 section');

Stringオブジェクトをthrowした場合

throw 'Out of llamas';

try-catch

try {
  ...処理
} on FormatException(e) {
  print(`Exception : $e`);
} catch(e) {
  print(`Exception : $e`);
} finally {
  ...
}

...