アプリどう作るのかな〜とFlutterをなんとなく始めた。とはいえ公式のガイドにそって、プロジェクトを作って、デモアプリが動いて、ちょっと改変して、Codelabをやって、くらいしかしていない。
https://docs.flutter.dev/get-started/
とはいえいくつか気づいたところがあるのでメモ:
Jetbrainsファミリーを使えるなら、Android StudioやVSCodeよりも、IntelliJ IDEAを使ったほうがいい
Android Studioは見た目こそJetbrainsファミリーだけど対応していないプラグインや設定がある。例えば、Jetbrains AIは対応してなかった。Jetbrainsアカウントを使っての設定同期もできなかったり。
IntelliJ IDEAにAndroid, Fluter, Dartあたりのプラグインを入れれば、Android Studioと同様にエミュレーターを起動したり、Flutterの色々な機能をIDE上でできたので、これで十分そう。Device Mangerなども入っているので、IntelliJ IDEAが使える環境ならAndroid Studioは不要かな。
懸念としては、これをしている人があまりいないっぽくて、何かIDE上のトラブルがあると解決が難しそう。
VSCodeは初手から使っていないので不明。
Dart
書き方は何もわかってないけれど、JavaとかRubyとかPHPとか、クラスがある言語を何かしらやっているならだいたい雰囲気でなんとかなりそう。ChatGPTに聞けばいい感じに返答してくれるので、あとはエラーとにらめっこして解決できる。基本の勘所がついていて、横展開したいときにはこれが最速っぽい。便利な時代だ。
Flutter
全部Widgetになっていて、無限に重ねて表現するのは初体験。ミドルウェアをたくさん重ねるのと一緒っぽい…? sters/go-func-middlewareというのを作って理解した いや違うか。これがわかりやすいといえばわかりやすいけど、素直に全部を1箇所に書くと深くなりすぎてわけわからなくなりそう。適切な深さでWidgetを切り分けるとわかりやすいとは思うのだが、それが難しそう。
以前Vueをやっていたときにも思っていたけれど、変数の値を変えたら、画面の内容も変わるのは便利。
プラグインも色々あるので、色々試したいな。 The official repository for Dart and Flutter packages.
データの取り回し、ネットワーク、アニメーションなどなど、まだまだ全然わかっていないところもあるのでこれからやってみる。
IntelliJ IDEAからエミュレーターを起動して、Flutter DevToolsを開くとどのWidgetがどうなっているか、どういうデータを持っているのかわかるのでこれがすごく便利。複雑になった画面でも助かる。