Flutter for Windowsが正式版に、「Flutter 2.10」リリース。単一コードでiOS/Android/Web/Windowsアプリが可能に

GoogleはDart言語のフレームワークであるFlutterの最新バージョン「Flutter 2.10」のリリースを発表しました。

FlutterはもともとiOSとAndroidのネイティブアプリケーションを単一のソースコードで開発するためのUIフレームワークとして2018年に登場しました

2019年には単一ソースコードでWebアプリケーションもサポートする「Flutter for Web」を発表

2021年にリリースされたFlutter 2.0で「Flutter for Web」が正式版となり、さらにWindows 、Mac、Linuxのデスクトップアプリケーションまでサポートすることが発表されました。

Flutterは単一のソースコードでiOSから組み込みアプリケーションまで生成できるマルチプラットフォーム対応のフレームワークとなる方針が明確化されたのです。

fig

そして今回リリースされたFlutter 2.10で「Flutter for Windows」が正式版となり、本番環境に対応するWindowsアプリケーションの生成が可能になりました。

今後Flutterの開発が進む中でMacやLinux対応にも正式版が登場することでしょう。

Flutter for Windowsが正式版に

Flutter for Windowsのアーキテクチャは下記の図のようになっていいます。

fig

最下層にはWindowsネイティブな組み込みレイヤ(Windows Embedder)がOSとのインターフェイスの役割を果たします。

その上の中間層に、Dartランタイムエンジン、GPUアクセラレーションエンジンのSkia、テキストレンダリングなどのレイヤがあります。

その上でDartで実装されたフレームワークとしてのFlutterが走り、ユーザーインターフェイスを構築するウィジェットやルック&フィールが設定されます。

Flutter for Windowsではここで2つの選択肢があります。1つはマルチプラットフォーム全体で一貫したルック&フィールを設定できる「Material Design」、もう1つはWindowsのルック&フィールに合う「Fluent Design」です。

どちらもFlutter for Windowsとしてパッケージを取り込んで設定できるようになっています。ちなみにFluet Designのパッケージにはマイクロソフトからアイコンの提供などの協力があったとのこと。

fig

Flutter for Windowsは、以下のコマンドでアプリケーションを簡単にインストーラブルなmsix形式で出力でき、そのままMicrosoft Storeで扱えるようにもなっています。

fig

性能改善やバグフィクスも

Flutter 2.10では、Flutter for Windowsが正式版になった以外にも、多数の性能改善やバグフィクスなどが行われています。

iOS/Metal利用時にグラフィックの描画時に再描画が必要なところだけを描画することで、時間がかかっていたケースでのGPU利用率と描画時間を大幅に改善。

透明性のあるレイヤの描画についてもより効率的になっています。

Androidではデフォルトで最新のAndroid 12に対応。

Web対応では、テキスト選択時に下記のようなエッジスクローリングを実装しています。

fig