Flutterの"Widget of the Week"がめっちゃ勉強になったので、まとめてみた

---
# :book: Flutterの記事を整理し本にしました :book:
https://zenn.dev/kazutxt/books/flutter_practice_introduction

* <font color="red"><b>本稿の記事を含む様々な記事を体系的に整理し本にまとめました</b></font>
* 今後はこちらを最新化するため、<font color="red"><b>最新情報はこちらをご確認くださ</b>い</font>
* 10万文字を超える超大作になっています(笑)

---

# どんな記事
* `Flutter of the Week`という動画リストがyoutubeにあり、Flutterのウィジェットを分かりやすく紹介しています。
    * https://www.youtube.com/playlist?list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG
* この動画リストの情報の整理とリンクのまとめになります。

## 補足
* スマホアプリを作成するクロスプラットフォームにGoogleが作成したFlutterというものがあるのですが、こちらはウィジェットというパーツ(ボタン、リスト、テーブル、アニメーションなどなど)を組み合わせて作ります。
    * 自分が作りたいアプリに合ったウィジェットを探したり、ない場合はあるものを組み合わせて実現しなければなりません。
    * つまり、たくさんの便利なウィジェットを効率的に知る方法が重要になります。
* ウィジェットについて検索していると、この動画がヒットすることも多いので、勉強も兼ねてどんな動画があるか全部見てみることにしました。
    * 自分が思ったことを二言でまとめていますが、使ったことがないものもあり、動画をみた印象を勢いでどんどん書いているので、細かい部分は雰囲気で許してください
        * 同じような役割を持ったウィジェットはほぼ同じこと書いているかもですｗ
            * 二言では細かいニュアンスを伝えるのは無理がありますので :sweat: 

# Flutter of the Weekのウィジェット一覧
|#  | ウィジェット名         | 二言で                | 動画     |            Doc |
|:-:|-----------------------|-----------------------|----------|-----------------|
|#1 | Introduction          | 1-2分で1つのWidgetを紹介するよ<br>よく使う機能をソースとともに紹介するよ<br> |[:film_frames:](https://www.youtube.com/watch?v=b_sQ9bMltGU&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=1)|-|
|#2 | SafeArea              | これで囲めばはみ出さないようにしてくれるよ<br>bodyの下に入れておくと画面がはみ出さないよ<br> |[:film_frames:](https://www.youtube.com/watch?v=lkF0TQJO0bA&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=2)|[:file:](https://api.flutter.dev/flutter/widgets/SafeArea-class.html)|
|#3 | Expanded              | 要素は拡張できるよ<br>子要素を複数じゃなくて、子を拡張することで作ると幅とかうまく調整できるよ|[:film_frames:](https://www.youtube.com/watch?v=_rnZaagadyo&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=3)|[:file:](https://api.flutter.dev/flutter/widgets/Expanded-class.html)|
|#4 | Wrap                  | Wrapするとはみ出さないよ<br>要素がはみ出したときに、縦横改行をしてうまく見せてくれるよ |[:film_frames:](https://www.youtube.com/watch?v=z5iw2SeFx2M&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=4)|[:file:](https://api.flutter.dev/flutter/widgets/Wrap-class.html)|
|#5 | AnimatedContainer     | 状態が変わるときにアニメになるよ<br>色とか幅とか形とかいい感じに動くよ |[:film_frames:](https://www.youtube.com/watch?v=yI-8QHpGIP4&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=5)|[:file:](https://api.flutter.dev/flutter/widgets/AnimatedContainer-class.html)|
|#6 | Opacity               | これはユーザに見えないよ<br>見えない処理やウィジェットを作りたいときに便利だよ<br>|[:film_frames:](https://www.youtube.com/watch?v=9hltevOHQBw&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=6)|[:file:](https://api.flutter.dev/flutter/widgets/Opacity-class.html)|
|#7 | FutureBuilder         | Flutterは常に非同期なので、これを使うと待ち時やデータ到着時の描画が簡単にできるよ |[:film_frames:](https://www.youtube.com/watch?v=ek8ZPdWj4Qo&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=7)|[:file:](https://api.flutter.dev/flutter/widgets/FutureBuilder-class.html)|
|#8 | FadeTransition        | 簡単なアニメーションをさくっとつくれるよ<br>statefullWidgetでcontrollerと一緒に使ってね<br> |[:film_frames:](https://www.youtube.com/watch?v=rLwWVbv3xDQ&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=8)|[:file:](https://api.flutter.dev/flutter/widgets/FadeTransition-class.html)|
|#9 | FloatingActionButton  | Floatingなボタンを作れるよ<br>ボトムメニューにかぶせたりもできるよ |[:film_frames:](https://www.youtube.com/watch?v=2uaoEDOgk_I&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=9)|[:file:](https://api.flutter.dev/flutter/material/FloatingActionButton-class.htmll)|
|#10 | PageView              | PageViewとPageControllerを使うと、上下左右のスワイプで画面を切り替えれるよ |[:film_frames:](https://www.youtube.com/watch?v=J1gE9xvph-A&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=10)|[:file:](https://api.flutter.dev/flutter/widgets/PageView-class.html)|
|#11| Table                 | スクロールさせたくないGridはTableを使おう<br>細かい調節もできるけど、子要素を見ていい感じに表示するよ |[:film_frames:](https://www.youtube.com/watch?v=_lbE0wsVZSw&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=12)|[:file:](https://api.flutter.dev/flutter/widgets/Table-class.html)|
|#12| SliverAppBar          | スクロールさせたくない固定部分を作れるよ<br>スクロール後に上部に出したりもできるよ |[:film_frames:](https://www.youtube.com/watch?v=R9C5KMJKluE&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=12)|[:file:](https://api.flutter.dev/flutter/material/SliverAppBar-class.html)|
|#13| SliverList<br>SliverGrid  | Sliverは部分スクロール領域のこと<br>複雑なスクロール効果を作れるよ |[:film_frames:](https://www.youtube.com/watch?v=ORiTTaVY6mM&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=13)|[:file:](https://api.flutter.dev/flutter/widgets/SliverList-class.html)[:file:](https://api.flutter.dev/flutter/widgets/SliverGrid-class.html)|
|#14| FadeInImage           | 処理中などにプレースホルダを表示できるよ<br>アニメーションにもできるよ |[:film_frames:](https://www.youtube.com/watch?v=pK738Pg9cxc&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=14)|[:file:](https://api.flutter.dev/flutter/widgets/FadeInImage-class.html)|
|#15| StreamBuilder         | データストリームを扱えるよ<br>イベントごとやsnapshotで画面を変えたりできるよ |[:film_frames:](https://www.youtube.com/watch?v=MkKEWHfy99Y&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=15)|[:file:](https://api.flutter.dev/flutter/widgets/StreamBuilder-class.html)|
|#16| InheritedModel        | 遠い子孫が変わったときに依存関係があるところだけ再構成するよ<br>全部再構成するのが高コストなときに便利だよ |[:film_frames:](https://www.youtube.com/watch?v=ml5uefGgkaA&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=16)|[:file:](https://api.flutter.dev/flutter/widgets/InheritedModel-class.html)|
|#17| ClipRRect             | ウィジェットの角を丸くするよ<br>他にもClipOvalやClipPathなどがあるよ |[:film_frames:](https://www.youtube.com/watch?v=eI43jkQkrvs&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=17)|[:file:](https://api.flutter.dev/flutter/widgets/ClipRRect-class.html)|
|#18| Hero                  | 2つの画面で同じアイコンを使うときに、アニメートしていい感じにつないでくれるよ<br>2つの画面で同じタグを付けてね |[:film_frames:](https://www.youtube.com/watch?v=Be9UH1kXFDw&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=18)|[:file:](https://api.flutter.dev/flutter/widgets/Hero-class.html)|
|#19| CustomPaint           | 細かい線や図形を書くための定例レベルAPIだよ<br>高速だし細かい部分をかけて便利だよ<br> |[:film_frames:](https://www.youtube.com/watch?v=kp14Y4uHpHs&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=19)|[:file:](https://api.flutter.dev/flutter/widgets/CustomPaint-class.html)|
|#20| Tooltip               | アイコンをタップや長押ししたときに文字や音声を出せるようになるよ<br>アイコンが分かりづらかったり目の不自由な方のために配慮したUIって大事だよね<br> |[:film_frames:](https://www.youtube.com/watch?v=EeEfD5fI-5Q&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=20)|[:file:](https://api.flutter.dev/flutter/material/Tooltip-class.html)|
|#21| FittedBox             | 親より子の方が大きことってあるよね<br>そんなときは子供をどうはめるか教えてくれればいい感じに収めるよ |[:film_frames:](https://www.youtube.com/watch?v=T4Uehk3_wlY&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=21)|[:file:](https://api.flutter.dev/flutter/widgets/FittedBox-class.html)|
|#22| LayoutBuilder         | ビルド前にサイズを知りたい？じゃぁレイアウトビルダーを呼び出せばいいよ<br>こいつを元にビルドロジックを組んでね |[:film_frames:](https://www.youtube.com/watch?v=IYDVcriKjsw&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=22)|[:file:](https://api.flutter.dev/flutter/widgets/LayoutBuilder-class.html)|
|#23| AbsorbPointer         | 1個ずつ入力を無効にするのは面倒なので、トップレベルでこいつをON/OFFすればまとめてガードできるよ<br> |[:film_frames:](https://www.youtube.com/watch?v=65HoWqBboI8&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=23)|[:file:](https://api.flutter.dev/flutter/widgets/AbsorbPointer-class.html)|
|#24| Transform             | ウィジェットをナナメにしたり、サイズを変えたりできるよ<br>3Dっぽく奥行きやアニメーションをつければ最高にcoolだ |[:film_frames:](https://www.youtube.com/watch?v=9z_YNlRlWfA&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=24)|[:file:](https://api.flutter.dev/flutter/widgets/Transform-class.html)|
|#25| BackdropFilter        | 画像をぼかしたりフィルターがかけれるよ<br>一部だけもOK |[:film_frames:](https://www.youtube.com/watch?v=dYRs7Q1vfYI&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=25)|[:file:](https://api.flutter.dev/flutter/widgets/BackdropFilter-class.html)|
|#26| Align                 | 配置を細かく指定できるよ<br>右下/左上とかでもいいし、値で細かく書いてもいいよ<br>|[:film_frames:](https://www.youtube.com/watch?v=g2E7yl3MwMk&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=26)|[:file:](https://api.flutter.dev/flutter/widgets/Align-class.html)|
|#27| Positioned            | 名前の通りstack内でのポジションを指定するよ<br>上下左右縦横で指定してね|[:film_frames:](https://www.youtube.com/watch?v=EgtPleVwxBQ&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=27)|[:file:](https://api.flutter.dev/flutter/widgets/Positioned-class.html)|
|#28| AnimatedBuilder       | これを使うと、ウィジェットにアニメーションを簡単に付けれるよ<br>statefullウィジェットで使ってね |[:film_frames:](https://www.youtube.com/watch?v=N-RiyZlv8v8&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=28)|[:file:](https://api.flutter.dev/flutter/widgets/AnimatedBuilder-class.html)|
|#29| Dismissible           | スワイプでリストからデータを消すことができるよ<br>左右スワイプはもちろんアニメートもできるよ |[:film_frames:](https://www.youtube.com/watch?v=iEMgjrfuc58&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=29)|[:file:](https://api.flutter.dev/flutter/widgets/Dismissible-class.html)|
|#30| SizedBox              | 縦横サイズを指定できて、infinityにすれば子要素の最大値になるよ<br>子要素なしで使うと余白を作れるよ |[:film_frames:](https://www.youtube.com/watch?v=EHPu_DzRfqA&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=30)|[:file:](https://api.flutter.dev/flutter/widgets/SizedBox-class.html)|
|#31| ValueListenableBuilder| 値をウィジェット毎に管理するのは大変だよね<br>こいつで変化を検知して必要な部分を書き換えるようにしよう |[:film_frames:](https://www.youtube.com/watch?v=s-ZG-jS5QHQ&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=31)|[:file:](https://api.flutter.dev/flutter/widgets/ValueListenableBuilder-class.html)|
|#32| Draggable             | ドラッグでウィジェットを動かすときに使えるよ<br>ドラッグ元、ドラッグ中、ドロップ先や各種イベントが準備されてるよ |[:film_frames:](https://www.youtube.com/watch?v=QzA4c4QHZCY&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=32)|[:file:](https://api.flutter.dev/flutter/widgets/Draggable-class.html)|
|#33| AnimatedList          | アニメーションのあるリストだよ<br>要素の追加や削除がわかりやすくなるよ |[:film_frames:](https://www.youtube.com/watch?v=ZtfItHwFlZ8&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=33)|[:file:](https://api.flutter.dev/flutter/widgets/AnimatedList-class.html)|
|#34| Flexible              | 子供のサイズをいい感じにできるよ<br>親や細かく指定しなくてもサイズをfitさせられるよ |[:film_frames:](https://www.youtube.com/watch?v=CI7x0mAZiY0&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=34)|[:file:](https://api.flutter.dev/flutter/widgets/Flexible-class.html)|
|#35| MediaQuery            | デバイスの情報を拾えるよ<br>タブレットとスマホでは見せ方を変えたいときもあるよね |[:film_frames:](https://www.youtube.com/watch?v=A3WrA4zAaPw&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=35)|[:file:](https://api.flutter.dev/flutter/widgets/MediaQuery-class.html)|
|#36| Spacer                | 隙間にもいろいろあるよね<br>値で指定してもいいけど、均等幅なども便利だよ |[:film_frames:](https://www.youtube.com/watch?v=7FJgd7QN1zI&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=36)|[:file:](https://api.flutter.dev/flutter/widgets/Spacer-class.html)|
|#37| InheritedWidget       | 共有データを何でもグローバルにするのは良くない<br>子ウィジェットが親のデータを参照することができるよ |[:film_frames:](https://www.youtube.com/watch?v=1t-8rBCGBYw&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=37)|[:file:](https://api.flutter.dev/flutter/widgets/InheritedWidget-class.html)|
|#38| AnimatedIcon          | アイコンがいっぱい準備されているよ<br>その中にはアニメーションのあるものだってあるよ |[:film_frames:](https://www.youtube.com/watch?v=pJcbh8pbvJs&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=38)|[:file:](https://api.flutter.dev/flutter/material/AnimatedIcon-class.html)|
|#39| AspectRatio           | サイズをアスペクト比で指定できるよ<br>Expandedを使えば子要素が自分でサイズを決めれるよ |[:film_frames:](https://www.youtube.com/watch?v=XcnP3_mO_Ms&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=39)|[:file:](https://api.flutter.dev/flutter/widgets/AspectRatio-class.html)|
|#40| LimitedBox            | 時には制限も必要だよね<br>親がいない時にはこいつで最大の大きさを決めればそれ以上はみ出さないよ |[:film_frames:](https://www.youtube.com/watch?v=uVki2CIzBTs&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=40)|[:file:](https://api.flutter.dev/flutter/widgets/LimitedBox-class.html)|
|#41| Placeholder           | まだ作成中のときに、そのスペースを仮置するやつがいるよ<br>サイズをしてして置いてね |[:film_frames:](https://www.youtube.com/watch?v=LPe56fezmoo&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=41)|[:file:](https://api.flutter.dev/flutter/widgets/Placeholder-class.html)|
|#42| RichText              | 複雑なタイポグラフィを実現できるよ<br>ベースの書式を設定し、個別のフォントで上書きできるよ |[:film_frames:](https://www.youtube.com/watch?v=rykDVh-QFfw&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=42)|[:file:](https://api.flutter.dev/flutter/widgets/RichText-class.html)|
|#43| ReorderableListView   | ユーザが並び替えられるリストだよ<br>ヘッダも付けれる便利なリストだよ |[:film_frames:](https://www.youtube.com/watch?v=3fB1mxOsqJE&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=43)|[:file:](https://api.flutter.dev/flutter/material/ReorderableListView-class.html)|
|#44| AnimatedSwitcher      | 複数のウィジェット間をおしゃれなアニメーションでつなぐよ<br>LayoutBuilderと組み合わせるともっと便利 |[:film_frames:](https://www.youtube.com/watch?v=2W7POjFb88g&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=44)|[:file:](https://api.flutter.dev/flutter/widgets/AnimatedSwitcher-class.html)|
|#45| AnimatedPositioned    | ウィジェットのアニメーションをつけるよ<br>位置やサイズを動かせるよ |[:film_frames:](https://www.youtube.com/watch?v=hC3s2YdtWt8&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=45)|[:file:](https://api.flutter.dev/flutter/widgets/AnimatedPositioned-class.html)|
|#46| AnimatedPadding       | パディングにだってアニメーションが付けれるよ<br>余白サイズやアニメーション時間を設定してね |[:film_frames:](https://www.youtube.com/watch?v=PY2m0fhGNz4&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=46)|[:file:](https://api.flutter.dev/flutter/widgets/AnimatedPadding-class.html)|
|#47| IndexedStack          | テレビのようにウィジェットを切り替えれるよ<br>最前面が表示され残りは裏でキープ!! |[:film_frames:](https://www.youtube.com/watch?v=_O0PPD1Xfbk&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=47)|[:file:](https://api.flutter.dev/flutter/widgets/IndexedStack-class.html)|
|#48| Semantics             | ウィジェットに意味を足せるよ<br>検索エンジンや意味解析のツールに情報を伝えられるよ |[:film_frames:](https://www.youtube.com/watch?v=NvtMt_DtFrQ&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=48)|[:file:](https://api.flutter.dev/flutter/widgets/Semantics-class.html)|
|#49| ConstrainedBox        | 子要素のサイズを微調整できるよ<br>最大最小サイズを指定できるのでテキストやボタンをうまく調節できるよ |[:film_frames:](https://www.youtube.com/watch?v=o2KveVr7adg&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=49)|[:file:](https://api.flutter.dev/flutter/widgets/ConstrainedBox-class.html)|
|#50| Stack                 | ウィジェットを重ねるよ<br>はみ出させたり、はみ出した分を切り取ったり、positionと組み合わせて調節したできるよ |[:film_frames:](https://www.youtube.com/watch?v=liEGSeD3Zt8&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=50)|[:file:](https://api.flutter.dev/flutter/widgets/Stack-class.html)|
|#51| AnimatedOpacity       | 透明度をアニメーションするよ<br>使わないものを徐々に非表示にしたり、逆に見えないものを見えるようにできるよ |[:film_frames:](https://www.youtube.com/watch?v=QZAvjqOqiLY&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=51)|[:file:](https://api.flutter.dev/flutter/widgets/AnimatedOpacity-class.html)|
|#52| FractionallySizedBox  | 相対的なサイズを調整するよ。画面や親の何%の大きさのウィジェットや余白を設定できるよ|[:film_frames:](https://www.youtube.com/watch?v=PEsY654EGZ0&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=52)|[:file:](https://api.flutter.dev/flutter/widgets/FractionallySizedBox-class.html)|
|#53| ListView              | リストを表示するよ。縦向き/横向き、スクロールの許可/禁止、動的要素の表示など自由度が高い!! |[:film_frames:](https://www.youtube.com/watch?v=KJpkjHGiI5A&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=53)|[:file:](https://api.flutter.dev/flutter/widgets/ListView-class.html)|
|#54| ListTile              | リストの要素を簡単にリッチにできるよ<br>先頭や末尾のアイコンやタイトル、イベントもバッチリさ |[:film_frames:](https://www.youtube.com/watch?v=l8dj0yPBvgQ&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=54)|[:file:](https://api.flutter.dev/flutter/material/ListTile-class.html)|
|#55| Container             | 万能な入れ物だよ<br>子供しかいないと見えないよ。色を付けたり位置をずらしたり、まとめたりと色々役立つよ |[:film_frames:](https://www.youtube.com/watch?v=c1xLMaTUWCY&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=55)|[:file:](https://api.flutter.dev/flutter/widgets/Container-class.html)|
|#56| SelectableText        | ユーザが選択できるテキストにできるよ<br>選択時のフォントやタップ時のコピーや全選択などができるよ |[:film_frames:](https://www.youtube.com/watch?v=ZSU3ZXOs6hc&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=56)|[:file:](https://api.flutter.dev/flutter/material/SelectableText-class.html)|
|#57| DataTable             | 表を作れるよ<br>列と行のデータを定義してね。コールバックや編集もできるよ |[:film_frames:](https://www.youtube.com/watch?v=ktTajqbhIcY&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=57)|[:file:](https://api.flutter.dev/flutter/material/DataTable-class.html)|
|#58| Slider                | 範囲から値を選ぶUIだよ。RangeSliderだと2つの値を取れるよ |[:film_frames:](https://www.youtube.com/watch?v=ufb4gIPDmEs&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=58)|[:file:](https://api.flutter.dev/flutter/material/Slider-class.html)|
|#59| AlertDialog           | ダイアログを作るよ<br>重要な判断をユーザにしてもらうときには必要だよね |[:film_frames:](https://www.youtube.com/watch?v=75CsnyRXf5I&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=59)|[:file:](https://api.flutter.dev/flutter/material/AlertDialog-class.html)|
|#60| AnimatedCrossFade     | 2つのウィジェットをアニメーションで切り替えるよ<br>サイズが違っていてもなめらかに変わっていくよ |[:film_frames:](https://www.youtube.com/watch?v=PGK2UUAyE54&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=60)|[:file:](https://api.flutter.dev/flutter/widgets/AnimatedCrossFade-class.html)|
|#61| DraggableScrollableSheet | ウィジェットの中でスクロールさせられるよ<br>min/maxのウィジェットサイズも指定できるよ |[:film_frames:](https://www.youtube.com/watch?v=Hgw819mL_78&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=61)|[:file:](https://api.flutter.dev/flutter/widgets/DraggableScrollableSheet-class.html)|
|#62| ColorFiltered         | 単純な塗りつぶし以外の色もほしいよね<br>こいつで画像等にカラーフィルターをかけてカスタマイズしてね |[:film_frames:](https://www.youtube.com/watch?v=F7Cll22Dno8&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=62)|[:file:](https://api.flutter.dev/flutter/widgets/ColorFiltered-class.html)|
|#63| ToggleButtons         | 複数のアイコンやテキストのスイッチを作るよ<br>選択時やオンマウスで色を変えたりといろいろできるよ |[:film_frames:](https://www.youtube.com/watch?v=kVEguaQWGAY&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=63)|[:file:](https://api.flutter.dev/flutter/material/ToggleButtons-class.html)|
|#64| CupertinoActionSheet  | iOSユーザ向けのスライドインする選択肢を出すよ<br>テキストやキャンセルなど単純なリスト以外もできるよ |[:film_frames:](https://www.youtube.com/watch?v=U-ao8p4A82k&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=64)|[:file:](https://api.flutter.dev/flutter/cupertino/CupertinoActionSheet-class.html)|
|#65| TweenAnimationBuilder | 独自のアニメーションを作れるよ<br>アニメーションが完了した時のイベントも準備しているよ |[:film_frames:](https://www.youtube.com/watch?v=l9uHB8VXZOg&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=65)|[:file:](https://api.flutter.dev/flutter/widgets/TweenAnimationBuilder-class.html)|
|#66| Image                 | 画像だよ<br>URLはローカルもオンラインもできるし、画像の加工だって簡単 |[:film_frames:](https://www.youtube.com/watch?v=7oIAs-0G4mw&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=66)|[:file:](https://api.flutter.dev/flutter/widgets/Image-class.html)|
|#67| TabBar                | タブでウィジェトを切り替えれるよ<br>タブコントローラーと一緒に使ってね |[:film_frames:](https://www.youtube.com/watch?v=POtoEH-5l40&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=67)|[:file:](https://api.flutter.dev/flutter/material/TabBar-class.html)|
|#68| Drawer                | 左右のスワイプでページ遷移をナビゲートできるよ<br>ページのリストと一緒に使うと便利だよ |[:film_frames:](https://www.youtube.com/watch?v=WRj86iHihgY&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=68)|[:file:](https://api.flutter.dev/flutter/material/Drawer-class.html)|
|#69| SnackBar              | 短い文字を画面下に表示するよ<br>scaffold.ofでラップすれば超簡単にでるよ |[:film_frames:](https://www.youtube.com/watch?v=zpO6n_oZWw0&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=69)|[:file:](https://api.flutter.dev/flutter/material/SnackBar-class.html)|
|#70| ListWheelScrollView   | ListViewの進化版だよ<br> 3Dの円柱を回っているようなListViewを作れるよ|[:film_frames:](https://www.youtube.com/watch?v=dUhmWAz4C7Y&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=70)|[:file:](https://api.flutter.dev/flutter/widgets/ListWheelScrollView-class.html)|
|#71| ShaderMask            | シェーダでグラデーションを作れるよ<br>画像やウィジェットやアイコンに炎のグラデーションを付けたりできるよ |[:film_frames:](https://www.youtube.com/watch?v=7sUL66pTQ7Q&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=71)|[:file:](https://api.flutter.dev/flutter/widgets/ShaderMask-class.html)|
|#72| NotificationListener  | 通知を制御できるよ<br>通知のバブリングをキャッチしてコールバックしたり、止めたりできるよ |[:film_frames:](https://www.youtube.com/watch?v=cAnFbFoGM50&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=72)|[:file:](https://api.flutter.dev/flutter/widgets/NotificationListener-class.html)|
|#73| Builder               | 親は子の事を知っているけど、子は親の情報を知らないよね<br>builderはofメソッドを持つ親への参照を解決してくれるよ |[:film_frames:](https://www.youtube.com/watch?v=xXNOkIuSYuA&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=73)|[:file:](https://api.flutter.dev/flutter/widgets/Builder-class.html)|
|#74| ClipPath              | #16のClipRRectの線バージョンだよ<br>応用すると切り絵みたいに複雑な図形もつくれるよ|[:film_frames:](https://www.youtube.com/watch?v=oAUebVIb-7s&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=74)|[:file:](https://api.flutter.dev/flutter/widgets/ClipPath-class.html)|
|#75| CircularProgressIndicator<br>LinearProgressIndicator | 作業時間の進捗を表す円形/線形のプログレスだよ<br>終了がわかっている確定型とわからない不確定型があるよ |[:film_frames:](https://www.youtube.com/watch?v=O-rhXZLtpv0&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=75)|[:file:](https://api.flutter.dev/flutter/material/CircularProgressIndicator-class.html)[:file:](https://api.flutter.dev/flutter/material/LinearProgressIndicator-class.html)|
|#76| Divider               | 境界線だよ<br>色や幅やインデントを指定できけど、テーマで一括設定するのがオススメ! |[:film_frames:](https://www.youtube.com/watch?v=_liUC641Nmk&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=76)|[:file:](https://api.flutter.dev/flutter/material/Divider-class.html)|
|#77| IgnorePointer         | タップをガードできるよ<br>ユーザの誤操作防止で設定すればインタラクティブでなくなるよ |[:film_frames:](https://www.youtube.com/watch?v=qV9pqHWxYgI&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=77)|[:file:](https://api.flutter.dev/flutter/widgets/IgnorePointer-class.html)|
|#78| CupertinoActivityIndicator | Cupertino系の円形の読み込みインジケータだよ<br>サイズやアニメーションをしてしてね。処理が終われば消えるよ |[:film_frames:](https://www.youtube.com/watch?v=AENVH-ZqKDQ&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=78)|[:file:](https://api.flutter.dev/flutter/cupertino/CupertinoActivityIndicator-class.html)|
|#79| ClipOval              | #16のClipRRectの円バージョンだよ<br>独自のClipperをクラスを作れば、細かく調整も効くよ |[:film_frames:](https://www.youtube.com/watch?v=vzWWDO6whIM&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=79)|[:file:](https://api.flutter.dev/flutter/widgets/ClipOval-class.html)|
|#80| AnimatedWidget        | 個別ウィジェットにアニメーションを付けるよ<br>準備されているXXTransitionで物足りないならこれで独自なものを作ろう |[:film_frames:](https://www.youtube.com/watch?v=LKKgYpC-EPQ&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=80)|[:file:](https://api.flutter.dev/flutter/widgets/AnimatedWidget-class.html)|
|#81| Padding               | 大事な大事な余白だよ<br>上下左右やウィジェットのstart/endから余白を作れるよ |[:film_frames:](https://www.youtube.com/watch?v=oD5RtLhhubg&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=81)|[:file:](https://api.flutter.dev/flutter/widgets/Padding-class.html)|
|#82| CheckboxListTile      | チェックボックスとリストタイルを合体させたよ<br>タイルのどこをクリックしてもチェックを切り替えれるよ |[:film_frames:](https://www.youtube.com/watch?v=RkSqPAn9szs&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=82)|[:file:](https://api.flutter.dev/flutter/material/CheckboxListTile-class.html)|
|#83| AboutDialog           | タップやコールバックでダイアログ表示できるよ<br>コンテキストに文字を入れてね。ちなみにライセンス表示は自動で作れるよ |[:film_frames:](https://www.youtube.com/watch?v=YFCSODyFxbE&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=83)|[:file:](https://api.flutter.dev/flutter/material/AboutDialog-class.html)|
|#84| Package:sqflite         | DB(SQLLite)使いたいことはよくあるよね<br>APIを通じたアクセスや生のSQL実行、トランザクションもサポートしているよ|[:film_frames:](https://www.youtube.com/watch?v=HefHf5B1YM0&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=84)|[:file:](https://pub.dev/packages/sqflite)|
|#85| SliverAppBar         | SliverAppBarがバージョンアップしたよ<br>ストレッチ機能で、スクロールが下まで行ったときにうまい具合に伸びてくれるよ|[:film_frames:](https://www.youtube.com/watch?v=mSc7qFzxHDw&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=85)|[:file:](https://api.flutter.dev/flutter/material/SliverAppBar-class.html)|
|#86| InteractiveViewer         | デカイウィジェットをいい感じに収めるよ<br>拡大縮小やパンもできるよ|[:film_frames:](https://www.youtube.com/watch?v=zrn7V3bMJvg&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=86)|[:file:](https://api.flutter.dev/flutter/widgets/InteractiveViewer-class.html)|
|#87| GridView          |縦横に並ぶグリッドを簡単に作れるよ<br>間隔を開けたりスクロールできたり、使い勝手は抜群|[:film_frames:](https://www.youtube.com/watch?v=bLOtZDTm4H8&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=87)|[:file:](https://api.flutter.dev/flutter/widgets/GridView-class.html)|
|#88| SwitchListTile         |ON/OFFのトグルスイッチを持ったリストを作れるよ <br>他にもチェックボックスリストやラジオリストなどもあるよ|[:film_frames:](https://www.youtube.com/watch?v=0igIjvtEWNU&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=88)|[:file:](https://api.flutter.dev/flutter/material/SwitchListTile-class.html)|
|#89| Package:location        |緯度経度や速度などの位置情報を取得できるよ<br>ユーザに許可を求めてサービスを有効かも簡単にできるよ|[:film_frames:](https://www.youtube.com/watch?v=65qbtJMltVk&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=89)| [:file:](https://pub.dev/packages/location)|
|#90| Package:Device_info        |Flutterがどこで動いているか分かるよ<br>プラットフォームの判別だけでなく詳細情報も拾えるよ|[:film_frames:](https://www.youtube.com/watch?v=8T3g6HU5Odo&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=90)| [:file:](https://pub.dev/packages/device_info)|
|#91| ImageFiltered       |簡単に画像の加工ができるよ<br>実は画像だけじゃなくてウィジェットに対しても掛けられるので便利|[:film_frames:](https://www.youtube.com/watch?v=7Lftorq4i2o&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=91)| [:file:](https://api.flutter.dev/flutter/dart-ui/ImageFilter-class.html)|
|#92| PhysicalModel      |陰影を簡単につけられるよ<br>影の色や深度、方向などを自由に設定できるよ|[:film_frames:](https://www.youtube.com/watch?v=XgUOSS30OQk&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=94)| [:file:](https://api.flutter.dev/flutter/widgets/PhysicalModel-class.html)|
|#93| Package:Animations      |さりげなく美しいアニメーションを簡単に作れるよ<br>デフォルトでもスマートだし、カスタマイズもできるよ|[:film_frames:](https://www.youtube.com/watch?v=HHzAJdlEj1c&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=95)| [:file:](https://pub.dev/packages/animations.html)|
|#94| Package:flutter_slidable      |スワイプでアイコン表示や機能の実現がイベントハンドラやジェスチャー検知よりも簡単にできるよ<br>リストとの相性が良くてカスタマイズもできるよ|[:film_frames:](https://www.youtube.com/watch?v=QFcFEpFmNJ8&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=96)| [:file:](https://pub.dev/packages/flutter_slidable)|
|#95| RotatedBox    |ウィジェットを回転させられるよ<br>transformと違ってレンダリングのみに影響を与えるよ|[:film_frames:](https://www.youtube.com/watch?v=BFE6_UglLfQ&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=97)| [:file:](https://api.flutter.dev/flutter/widgets/RotatedBox-class.html)|

* <font color="red"><b>以後は書籍の方で追加しております</b></font>


# 最後に
* APIのドキュメントもしっかりしていますが、説明動画もこれだけあるというのはすごいですね。さすが天下のGoogle :sunglasses:
* そして、こういうCoolな動画をサクッと作れるようになりたいなっという別の思いも出てきましたｗ
* 自分が一番このページをみるかもｗ

## ちなみに、自分が使いたいと思ったもの
* 配置、サイズ系
    * safeArea : はみ出さないように
    * Align : 強引なレイアウトではなく、位置を自動調整しないと
    * FractionallySizedBox : 相対で指定しないとすぐに崩れちゃうので
* ページ遷移
    * pageView : Swipeで切り替えたい
    * drawer : 左右スワイプでページ遷移
    * ToggleButton : ページ切り替えをわかりやすく!!
* 処理待ち
    * FadeInImage : 処理待ちは画像とかを出したい
    * CircularProgressIndicator : 処理待ちは画像ではなくプログレスでも良いかな
* UI
    * rangeSlider : 範囲を拾うのに良さそう
    * ListView : 多目的なデータの並びに使えそう