タイトルに尽きるのですが。
公式のドキュメントにきちんと言及されている通り、Only Flutter apps in debug mode can be hot reloaded.
, デバッグモードの場合にのみHot Reloadが有効になります。
つまり、flutter run
では Hot Reload が有効にはならないので悪しからずということです。
フロントエンド人としては普通にwebpack-dev-server
をnpm run start
などに設定することが多いので、そのノリでイケると勘違いしていました。そのせいで少しの時間ロスしたので、一応ここにメモっておくことにしました。
VSCode の Debug Mode で Flutter アプリを立ち上げる
VSCodeとiOS Simulatorでの使用を想定しています。iOS Simulatorは起動済みとします。
cmd + shift + P
または"View" => "Command Palette"
よりコマンドパレット開いて、flutter
と入力。
Debug: Attach to Flutter on Device
があるので、選択。少々時間のかかるビルドを待つ。
以上で、Hot Reloadができます。はい
関係ないですが、WEBフロントから来た身からすると、Flutter起動時のビルド遅くねってなってます。なんとかならんのかねこれ
追記: VSCodeのDebugモードの画面(左の虫アイコン or cmd + shift + D
)からRun with Dart and Flutter
を実行してもデバッグモードで実行できるようです。体感ですが、こっちの方がビルド速い??
ref
https://flutter.dev/docs/development/tools/hot-reload
https://stackoverflow.com/questions/55060461/vs-code-osx-flutter-hot-reload-is-not-triggered-by-save