🦔

Flutter開発で知っておくと良さそうなこと

2020/12/13に公開

この記事はFlutter #3 アドベントカレンダー 2020 - Qiita 13 日目の記事です。


Qiita初投稿です。Flutterでの開発歴も全然長くありません。
なので、もしどこか見解の甘いところや認識として宜しくないところなどがあったらコメントや編集リクエスト?などでご指摘お願いします。

基礎的な知識

FlutterのほとんどはWidgetです。公式がそう言ってます。
Widgetを組み合わせてビューを作ります。
Widgetはぐぐるとわかりますが、それぞれドキュメントのページがあり何のためのWidgetかやどう使うのかが書いてあります。

ただ、スマホアプリやWebアプリをFlutterで作るにあたってそれだけでは知識的に足りないと思うので
基礎的な知識をつけるのにとても良かったもの、よく見に行くものをまとめます。

A tour of the Dart language
Effective Dart
Flutter Docs
Flutter Samples
↑コードもある
Flutter 全部俺 Advent Calendar 2019
↑とにかく助かった
Flutter公式のyoutube
↑深くは解説してないけどざっと知るのにとても助かっている
アーキテクチャのサンプル

以下は上のものも含め他の方が素晴らしい記事を書かれているので割愛。
リンクでないものは検索してみてください。
・StatelessWidget、StatefulWidget(、Provider)
・BuildContext、InheritedWidget、Providerスマホ
・Widgetツリー、Elementツリーなど
リアクティブプログラミング、StreamBuilder、StreamProvider、Consumer、rxdartEvent Bus

Flutterのchannel、バージョン

master、dev、beta、stableがあります。
それぞれの存在意義はこちらに書いています。
Flutter build release channels
stableが推奨されてますが、状況によってはmasterやdevでないと動かないときがある(stableやbetaでおかしいときがあったらmasterやdevで試してみるのも一案)。

バージョンを戻す方法は昔flutter versionというコマンドがあり環境によっては使えなくもないが、channelがunknownになるはず。
fvmという非公式のツールも動作として良かった!という記憶も特にない(自分はその時channelとバージョンを特定したかったので)。
channelはgitのブランチみたいなので、前のバージョンに戻したいときはgit reset hard [コミットのハッシュ値やバージョン]で戻すのが得策っぽい。

ツール

DevTools
新しめのバージョンだとそこまで試してないのでわかりませんが、
コマンドで叩いて起動するもので2パターンくらい?見られないときがあった。
profileビルドだとDevToolsが提供するものが全て見られるよう。
releasaeビルドだと見られなかった(2パターンのうちのひとつ)

通常のJavaScriptを使ったフロントエンド開発だとデベロッパーツールで表示されたものを分析しながら開発できるが、Flutterではその役割するものはないよう?
(Flutter webの話です。あったら教えてほしい)
個人的にWidgetツリーが可視化されるのが大変嬉しかった。

Flutterを通して感じたこと

もともとそうなのかもしれませんが
今後個人がプログラミング言語を書く、選択するときの基準はより多くの目的を達成できる言語かそうでない何か特定の目的で使うネイティブな言語か、になっていくのだなと実感しました。

まとめ

手抜き記事になってしまいました。
タイトルの抽象度があるわりにそこまで網羅的に自分がDartとFlutterについて理解や把握をしていないことを痛感してしまいました。
Qiitaでは丁寧語のほうがいいかそうじゃないのかわかりかねました。

Discussion