Skip to main content

現場で使える Flutter開発入門の4章を読んで不明点を調べた

現場で使える Flutter開発入門の3-8までの不明点を調べた
の続編

現場で使える Flutter開発入門の4章の不明点を調べた
調べたことを備忘録で記載する


Dartの構文
・required
コンストラクタのパラメタにこれをつけると必須になる。
non-nullにするならこれつける。

・Future
非同期処理のときにつける。
JavaScriptのasync awaitのやつ。

・as
型を変換する。

・コンストラクタでアンダースコア
これは外から呼ばれないことを想定してるとのこと。

TodosState._({
    required this.nextId,
    required this.todos
  });

https://note.com/ohbashunsuke/n/n7d003751d3c3

・拡張関数
Monster.fromString
みたいな感じでメソッドを生やすことができる。
extension aaa on String みたいな感じで拡張もできる。
https://zenn.dev/iwaku/articles/2020-12-17-iwaku

・コレクション
whereで条件の絞り込みができる
https://zenn.dev/iwaku/articles/2020-12-27-iwaku
growable
>ちなみにList.fromにはオプション引数にgrowableがあるので、これをfalseにすると固定長として生成することが出来ます。
https://qiita.com/lacolaco/items/99554704b4d4733eed6d
expand
二次元配列を一次元にする。flattenと同じ
https://zenn.dev/iwaku/articles/2020-12-27-iwaku

・Getter
int get a
とgetをつけるとgetterが生える
https://qiita.com/teradonburi/items/913fb8c311b9f2bdb1dd

 

ウィジェット
・Dismissible
スワイプで行を消すことができるウィジェット。
https://qiita.com/tty_0/items/3a347c18436fe9b014fd

・ObjectKey
オブジェクトを与えてユニークにする。
https://qiita.com/kurun_pan/items/0517fb62f1b47c90882c#objectkey

・ListTile
リストのタイトル。
https://tech-rise.net/what-is-list-tile/

・TextEditingController
入力を監視する。
https://api.flutter.dev/flutter/widgets/TextEditingController-class.html

 

パッケージ追加
・shared_preferences
使うならパッケージを入れる必要がある。
shared_preferences: ^2.0.13

・redux
使うならパッケージを入れる必要がある。
flutter_redux: ^0.8.2

・オブジェクトのjson変換
json_annotationとjson_serializableを入れる。
以下のコマンドを実行する。
そうするとファイルが自動でできる。
flutter packages pub run build_runner build
https://qiita.com/rkowase/items/f397513f2149a41b6dd2

・part
一つのライブラリを分割するときに使うらしい
https://zenn.dev/littleforest/articles/a4fc5bc7c944d42f66d2

・DI
createにDIしたいやつ書いて、childに先を指定する

  static Widget withDependencies({required BuildContext context}) {
    return ChangeNotifierProvider(
      create: (_context) => TodosListPageModel(
        store: StoreProvider.of(context),
      ),
      child: const TodosListPage._(),
    );

Provider.ofで取り出す

final viewModel = Provider.of<TodosListPageModel>(context);

https://qiita.com/sarukun99/items/4057ae3c0801a3bfcfd7

 

エラー
・エラー
Wrapping your MaterialApp with the StoreProvider, rather than an individual Route
main.dartをStoreProviderで囲う必要がある

 

関連記事:

Pocket