ニュース

新規開発でnull安全が既定になった「Dart 2.13」「Flutter 2.2」

スマホ・デスクトップ・Web・組込みをカバーする言語+UIキット

プログラミング言語「Dart」の公式サイト

 プログラミング言語「Dart」の新バージョン「Dart 2.13」が、5月20日(米国時間)にリリースされた。ユーザーインターフェイスツールキット「Flutter 2.2」も発表されている。

 「Dart」は、Googleが主導で開発を進めているオープンソースのプログラミング言語。JavaScriptの欠点克服を目的としたいわゆる「AltJS」(JavaScriptの代替言語)の一つで、大規模なWebアプリケーション開発で鍵となるパフォーマンス、スケーラビリティ、セキュリティといった要素を重視した設計になっている。最近は競合の「TypeScript」の陰に隠れがちだが、クロスプラットフォーム対応のUIツールキット「Flutter」の開発言語として根強い支持を集めている。

 「Dart 2.13」では、新規にアプリやパッケージを開発する際に健全なnull安全(sound null safety)が既定で有効化された。これは3月にリリースされた「Dart 2.12」で導入された機能で、意図せず混入する厄介なnull参照エラーを未然に防ぐのに役立つ。また、変数がnullでないことが保証できれば実行時のnullチェックを排除できるため、パフォーマンスの向上も期待できる。

 懸念される互換性については、「pub.dev」で人気上位500パッケージのうち、93%はすでにnull安全をサポートしているとのこと。null安全のメリットを考えれば、そろそろ移行してもよい頃合いといえるだろう。

 言語機能としては新たに型エイリアス(type aliases)が導入され、既存の型にわかりやすい名前を付けられるようになった。コードの読みやすさや保守性を高めるのに役立つ。C言語のコードを呼び出す相互運用機能「FFI」では配列を持つ構造体がサポートされ、「Dart」で直接ラップできるようになった。「Dart」で開発されたアプリのサイズとメモリフットプリントを削減する取り組みも続けられており、実行時には不要なデバッグ情報を取り除くフラグが導入されている。

UIキット「Flutter」の公式サイト

 一方、「Flutter 2.2」ではWebではサービスワーカーがバックグラウンドでアプリのアップデートを行う処理が改善され、手動でのリロードが不要となったほか、レンダラーやアクセシビリティの改善が行われた。iOSではアニメーションフレームのレンダリングにかかる時間が75%短縮され、とくにローエンドの端末でページの遷移がスムーズになった。アプリを更新するのにかかる時間も、40%減少しているという。アプリで使えるマテリアルアイコンも拡充され、総数は7,000を超えるまでになった。

 さらに、決済プラグインの導入によりアプリ内購入や支払いの実装が簡単になったほか、アダプティブ広告による収益化の支援も得られるようになった。パフォーマンスの向上やパッケージサイズの削減も図られているが、これらは「Dart 2.13」の恩恵だ。Windows UWP対応がアルファ版となるなど、サポートプラットフォームの拡充も図られている。