最新のDartリリースのDart 2.8は、Null安全の導入に向けた土台の準備に焦点を当てて、改善されたパッケージマネージャをもたらす。Flutter 1.17は、バイナリサイズとメモリ使用量を削減しながら、ランタイムパフォーマンスを大幅に改善している。さらに、NavigationRail
、更新されたDatePicker
など、多くの新しいMaterialウィジェットが導入されている。
Dart 2.8は、型システムを拡張してNullの安全性のサポートを追加する方法を準備している。
このサポートにより、型システムが拡張され、常にNull可能ではない変数が表現され、さらに、型システムは完全に健全になります。Dartコンパイラおよびランタイムはこれらの型を信頼でき、最適化されたコードを生成できるようになります。型システムは、変数がNullでないことを保証します。
既存の言語にNullの安全性を追加することは容易なことではなく、言語とそのライブラリの両方にいくつかの重大な変更が必要である。特に、Dart 2.8では、ローカル変数の型推論は型の昇格を使用しない。さらに、タイプオブジェクトは正規化され、多くの場合、構造サブタイプよりも相互サブタイプが優先される。より重大な変更は、dart:core
、dart:async
、およびdart:io
ライブラリに影響します。
ツールの面では、Dart 2.8は、並列フェッチのサポートと、古い依存関係を追跡する新しいpub outdated
ツールのおかげで、pub.devリポジトリからパッケージを取得するときのパフォーマンスが大幅に向上している。
Flutter 1.17は、すぐにアプリのパフォーマンスを向上させることを約束する:
このリリースでは、デフォルトのナビゲーションケース (透明度のない不透明なルート) が20%〜37%高速化されます。ハードウェアによっては、シンプルなiOSアニメーションのCPU/GPU使用率が最大40%削減されることもわかります。
さらに、いくつかのバグ修正により、アプリのサイズとメモリ使用量を大幅に削減でき、特定のケースでは最大70%削減できる。iOSでのMetalのサポートに関する特定の作業のおかげで、Flutter 1.17は、ほとんどのユースケースでパフォーマンスが50%向上する。
前述のように、Flutter 1.17はMaterialウィジェットコレクションも拡張する。新しいNavigationRailは、BottomNavigator
と簡単に交換できるナビゲーションウィジェットで、モバイルとデスクトップの両方のフォームファクタをターゲットとするアプリに役立つ。より洗練されたDatePickerに加えて、Flutter 1.17は、テキスト選択、新しいAnimationsパッケージ、最新のテキストテーマ、つまりテキストスタイル定義に基づく自動テキストスケーリングのサポートを強化している。
ちなみに、Flutterの最新バージョンでは、AndroidXが新しいプロジェクトで必須となっている。
どちらのリリースにも、多数の修正と重大な変更が含まれている。詳細については公式発表をお見逃しなく。