🐙

私的Flutterまとめ

2023/04/28に公開

Flutterって何?

iOSとAndroidの両方を開発できるマルチプラットフォーム

どんなアーキテクチャ?

主に3つの層で分割されていて、Flutter Framework、Flutter engine、Embedderにわかれる。

Flutter engineについて

dartランタイム、UIレンダリングエンジンのSkia(3系からImpeller)などをになっている。
c++で書かれてるらしい。

コンパイルについて

AOTとJITコンパイラの両方を使い分けている。
リリースはAOT、デバッグはJITで、後者だとhot reloadが可能になっている。

dart compile exe hello.dart
dart compile aot-snapshot hello.dart
dart compile jit-snapshot hello.dart

dart VMとは?

dartの仮想実行環境。
VMとして以外にも、AOTパイプラインなどの機能も兼ね備えている。

dart VM機能一覧

  • Dartランタイム
  • Dartコアライブラリの提供
  • デバッグモード && hot reload

スナップショットとは?

VMから実行する場合、「ソースコードから実行するパターン」と「JIT or AOTのスナップショット」から実行するパターンがあるらしい。そうすることで高速な実行を実現しているとかしてないとか。

Discussion