ニュース

Google、「Flutter 2」を正式リリース ~iOS/Androidに加えWeb開発をサポート

開発言語の「Dart 2.12」は“null安全”に対応

Google、「Flutter 2」を正式リリース

 米Googleは3月3日(現地時間)、ユーザーインターフェイスツールキット「Flutter 2」を発表した。これまでベータ版であったWebアプリ開発のサポートがベータ版を卒業し、安定版として利用できるようになったのが最大のトピックだ。

 「Flutter」は、オープンソースで開発が進められているモバイルアプリケーションのフレームワーク。JavaScriptの代替言語として開発された「Dart」を用い、iOSとAndroidの両方に対応したGUIアプリケーションをワンソースで開発できるのが特徴だ。

 「Flutter 2」ではWeb開発が正式にサポートされ、コードの再利用性が大きく向上した。初期リリースでは、既存の「Flutter」モバイルアプリのWeb移植・コード共通化と、ページ遷移を伴わない単一ページのWebアプリ(SPA)やモバイル・デスクトップアプリのように使えるプログレッシブWebアプリ(PWA)での利用に焦点が当てられており、履歴を利用した入力補完やURLの制御、PWAマニフェストといった機能が追加されている。

 また、デスクトップアプリや折り畳み式のモバイルデバイス、組込みデバイスへの応用も進んでいる。たとえば、Ubuntuの開発を行っているCanonicalは「Flutter」をLinuxデスクトップへ持ち込み、新しいインストーラーアプリのプロトタイプをデモンストレーションした。Microsoftも折り畳み式Android端末“Surface Duo”で「Flutter」を利用するため、デュアルスクリーン向けのAPIを「Flutter」エンジンにしている。トヨタも自動車のインフォテイメント(情報+娯楽)システムの構築に「Flutter」を採用する計画であるという。

Google、「Flutter 2」を正式リリース

 このような利用の広がりに対応するため、「Flutter 2」にはデスクトップ向けのウィジェット(UI部品)改善も含まれている。レンダリングに関しても、既存のHTMLレンダラーに加え、「CanvasKit」(Skia+WebAssembly)ベースのレンダラーが追加された。「CanvasKit」レンダラーはDOMを操作するHTMLレンダラーよりも高速で、表現の互換性も高い。しかしダウンロードサイズが若干増加することから、初期設定ではデスクトップ開発の場合にのみ利用されるようだ。

 また、「Flutter」向けの広告ライブラリもベータ版として提供されており、今後はアプリの収益化も見込める。

「Google Mobile Ads for Flutter」をベータ提供

 「Flutter」の移植性を支えている「Dart」言語にも、いくつかの改善が加えられている。「Dart」はモバイル・デスクトップ向けに高品質なマシンコード(Intel/ARM)と、Webアプリ向けの最適化されたJavaScriptコードの両方を生成可能で、ステートフルなホットリロードによる実行・デバッグの反復、非同期化されたUIプログラミングといった最近のトレンドを抑えたアプリ開発が可能。同日付けでリリースされた「Dart 2.12」は、「Dart 2.0」以来最大のリリースで、“null安全”な開発をサポートする。開発者が明示しない限り、開発時・実行時ともにnull値が変数に混入しないことが保証される(Sound null safety:変数にnullが含まれるか含まれないかがコンパイラーによりチェックされ、厳密に区別されるようになる)ため、ポインター参照エラーのない安全なプログラムを開発できる。