Googleのプログラミング言語「Dart」のバージョン2.8がリリースされた。今回のリリースに併せて、iOS、Android、Fuchsia、デスクトップ向けアプリの開発に使用されるGoogleのユーザーインターフェース(UI)フレームワーク「Flutter」のバージョン1.17もリリースされている。
Googleは4月にFlutterとDartのリリースプロセスとチャネルを統一する計画を発表しており、今回の同時リリースはこの計画に従ったものだ。
同社によると、Flutterを使用する開発者は月間で約50万人に上り、Google Playには現在、Flutterを用いて開発されたアプリが5万本あるという。ただし、今回のアップデートから最も多くの恩恵を受けるのはiOS向けアプリの開発者だ。
開催中止が発表されたGoogleの開発者向けカンファレンス「Google I/O」に先立って発表されたFlutter 1.17では、多くの修正が図られている。
バージョン.1.17にアップグレードするだけでアプリのパフォーマンスとメモリーを改善できるとFlutter開発者エクスペリエンス担当プロダクトマネージャーのChris Sells氏は言う。
同氏によれば、デフォルトのナビゲーションで20〜37%の高速化がなされており、ハードウェアの性能にもよるが、シンプルなiOSアニメションであればCPUとGPUの使用率が40%削減される見込みだ。
大きな画像を高速スクロールする際に使用されるメモリーも70%削減されるため、メモリー使用量の多い機器でのパフォーマンス改善が期待される。
今回のリリースでは、iOS機器のGPUにアクセスする際に、OpenGLではなくAppleのMetal APIをデフォルトで使用するようになった。その結果、MetalをサポートしているiPhoneやiPad上でFlutterアプリを高速に動かせるようになり、ワークロード次第ではレンダリングスピードが平均で約50%まで高速になるとSells氏は言う。
しかし、iOS機器のプロセッサーがA7チップ未満だったり、システムがiOS 10よりも古いバージョンだったりすると、Flutterは引き続きOpenGLを使用する。Appleは2018年にiOS 12ではOpenGLを非推奨にすることを発表した。
Flutterでも、Googleの新しいデザインガイドライン「Material Design」の採用が進められており、今回はNavigationRailが追加され、Material Designチームが設計したナビゲーションウィジェットをアプリの左か右に表示できるようになった。
「NavigationRailはモバイルとデスクトップのフォーム要素を切り替えられるアプリに最適だ。アプリの画面サイズが大きくなっても、BottomNavigatorに簡単にスワップインできる」とSell氏は言う。
Material DesignはFlutterのテキストテーマにも影響を与えている。今回のリリースではテキストテーマAPIがアップデートされたが、既存のコードが壊れないよう古い名前が維持されている。ただし、古い名前は非推奨となっているため、新しい名前を採用するよう開発者に促す警告が表示される。
開発者の間ではDartの人気が高まっており、RedMonkのランキングでは、この18カ月間に33位から24位に上昇した。DartとFlutterは、GitHubが選ぶ2019年に急成長を遂げた言語にもランクインしている。
Dart SDK 2.8では、パッケージリポジトリーpub.dev用のパッケージ管理ツール「pub tool」が強化され、新ツール「pub outdated」を使ってパッケージ依存関係を最新の状態に保てるようになった。
この機能はDart SDKが依存バージョンを発見することを可能にするものだが、DartやFlutterをサポートしている統合開発環境でも利用できるほか、ユーザー端末からも実行できる。
今回のリリースでは、Dart言語とライブラリに関して、互換性を損なう変更が幾つか行われた。これらの変更は、Dartがnull安全(null safety)をサポートするために必要だったとGoogleは言う。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。