Google の Flutter チームは、Windows を対象とした最初のアルファ リリースを導入し、クロスプラットフォーム開発ツールを拡張して、Android、iOS、Linux、macOS、Web アプリで同じコードを実行できるようにしました。
Flutter は、コードを書き直すことなく Web およびモバイル プラットフォームをサポートする際に開発者が直面する課題に対応するために設計されたオープンソース プロジェクトです。
この分野では、Microsoft の Xamarin、React Native、Ionic など、競合する取り組みが数多くありますが、Flutter は、最新の UI フレームワークや、パフォーマンスとサイズの利点を備えたネイティブ コードのコンパイルなど、多くの要件を満たしています。
Flutterの言語はDartです。Googleは、Android Playストアに10万以上のFlutterアプリが配信されていると見積もっています(1か月前に報告された9万から増加)。
Flutterは当初、AndroidとiOSのみに対応していました。2019年5月には、DartのJavaScriptコンパイル機能を利用してWebもサポートされました。Googleはまた、Flutterの目標はデスクトッププラットフォームや組み込みデバイスを含む「あらゆる画面に対応するポータブルなUIフレームワーク」を提供することだと宣言しました。
Flutterのアーキテクチャには、プラットフォーム固有のコード埋め込み、C / C ++エンジン、およびDartで書かれたUIフレームワークが含まれています。
Canonicalは今年7月、Linux上のFlutterアプリ向けにGTK+ベースのホストを提供しました。macOSのサポートはすでにアルファ版で、今回Windowsもサポート対象となりました。
Flutterのアーキテクチャは、プラットフォーム固有の埋め込みエンジンまたはホスト、C/C++で記述されたエンジン、そしてDartを使用したUIフレームワークに基づいています。Windowsの場合、これはC++で記述されたWin32アプリケーションを意味し、アプリケーションのFlutterコードをロードして実行します。Win32ターゲットをビルドすると、必要なDLLがすべて含まれたEXEファイルが作成され、Windows 10 PCにフォルダーをコピーするだけで簡単にデプロイできます。
デジタルメディア企業gskinnerのShawn Blais氏は、開発者がFlokkと呼ばれるデスクトップFlutterアプリケーションをどのように構築したかを詳細に説明し、フルページのモバイルアプリケーションからウィンドウ化されたデスクトップアプリケーションへの移行には、多くのレイアウト作業が必要だったと説明しています。また、変更のたびに画面全体を再描画する必要がないように最適化作業も必要でした。これはモバイルではそれほど問題になりませんが、デスクトップアプリケーションでは重要な問題です。
Windows向けのFlutterの初期サポートはWin32向けだが、チームは概念実証としてUWPの実験的なサポートも行っている。
ブレイス氏によると、「ベータ版以前の段階では、アプリケーションはWindows、Linux、macOSで問題なく動作します。特にLinuxでのパフォーマンスには感銘を受け、プラットフォームの中で最も優れたパフォーマンスを示すことがしばしばありました。」おそらく、FlutterがLinuxベースのAndroidにルーツを持つという点が、この点にも影響を与えているのでしょう。
FlutterチームはUWP(ユニバーサルWindowsプラットフォーム)のサポートも実験しており、Windowsストアに既にデモ版のFlutter Galleryアプリを公開しています。これは概念実証と称されており、Xbox OneとWindowsの両方で動作します。®