概要
どうも、@daiki1003です!とうとうこの日がやって来ましたね!
Flutterメジャーアップデート、毎回楽しみな時間です笑
それでは早速行きましょー!
Windowsの安定版
なんと言ってもこれが目玉でしたね!
今まではWindowsアプリの開発にはフラグ制御が必要でしたがそれも必要なくなりました。
さらに、テキストやショートカットなどのキーボード操作、アクセシビリティに関する
実装も盛り沢山だとか!
僕は主にMacユーザなので恩恵を受けることは少ないかもしれないですが
Windowsファンの方にはかなり大きいアプデになってること間違いなしですね!
パフォーマンス向上
最近、Flutterのアップデートで必ずと言っていいほどパフォーマンス改善がされていて
嬉しいですね!
それだけでアプデのモチベーションになります。
dirty region management
要するに描画パフォーマンスの向上ですね。
今までは、 StatefulWidget
などがsetState
するとdirty
フラグが立って、次回の描画時に全てを再描画することで画面を更新していました。
これが一部分だけ再描画することが出来るようになったという事だと思います。
これによってGPUの使用率が90%以上が10%以下になったのだとか。
picture recording format
Flutter2.8で独自の描画フォーマット(で合ってるかな)を採用。
不透明レイヤの描画が改善されたようです。
出典:https://medium.com/flutter/whats-new-in-flutter-2-10-5aafb0314b12
ビルド時間の短縮
コンパイラがコンパイル時の最適化を行う処理を改善し、
大体10%弱改善されているとのこと。
AOTコンパイラがRTA(Rapid Type Analysis)というのを使えるようになり早くなったようですね。
RTAはReal Time Attackじゃないですよ?
iOS
よりスムーズなキーボードアニメーション
特段何か設定が必要ということはなく、アップデートのみで良いようです。
64bit端末のメモリ使用率削減機能
圧縮ポインタ、とそのまま訳して良いのかな。
64bitの端末では大量の割り当て可能なメモリ領域があるけど
iOSのほとんどのアプリで64bit分どころか32bit分すらも使わないから
圧縮しようね、という話みたいです。
Android
アプリ作成時に、最新バージョン12(APIレベル31)をデフォルトでサポート。
さらに、multidexもサポートされるのだとか。
さらに、新しいパッケージ追加時に最低バージョンを上げないといけない場合は、
Flutter Fixと言う表示がコンソールに表示され修正を手助けしてくれるみたいです。
Web
TextFieldのスクロール
複数行のTextFieldのスクロールが正しく動作
出典:https://medium.com/flutter/whats-new-in-flutter-2-10-5aafb0314b12
non-painting platform view
Link
ウィジェットなど、今まで目には見えないビューを描画することにより実現していたが
大量のリンクがあると無視できないほどのオーバーヘッドがありました。
が、今回のアップデートで”描画しないビュー”という新しいビューを使用することにより、これらのオーバーヘッドを無くす事ができたそうです。
Material 3
シードカラーによるカラースキームの生成
ColorScheme.fromSeed(seedColor:)
によって、シードカラーを渡せばColorScheme
が生成できるようになりました。
useMaterial3フラグ
ThemeData.useMaterial3
をオンにすると、コンポーネントがMaterial3の見た目になるようです。
マテリアルアイコンの追加
1028個のマテリアルアイコンを追加!
Integration Test
今まではflutter_driver
パッケージが主流だったが、それをintegration_test
パッケージにリプレース。
Firebase Test Labの使用が可能になったり、ウェブやデスクトップも可能になるなど新機能も追加されました。
さらに、integration_test
パッケージをFlutterに内包されたとか。
Flutter DevTools
dart devtoolsコマンド
pub global activate
コマンドを叩く代わりにdart devtools
とするだけで、
使用しているFlutterのバージョンに合わせた最新のdevtoolsを利用できるようになりました。
inspectionツールの改善
変数を大量にデバッグできるようになりました!
VSCode
カラープレビュー
出典:https://medium.com/flutter/whats-new-in-flutter-2-10-5aafb0314b12
色コードの指定箇所から直接その色のプレビューが参照可能になり、さらに変更まで可能になりました!
prereleaseテスター
出典:https://medium.com/flutter/whats-new-in-flutter-2-10-5aafb0314b12
extensionの設定からprerelease版のテスターになることができるようになりました。
devチャンネルの削除
devチャンネルが削除されたようです。
(とは言え、flutter channel
を叩くとまだ出て来ますね)
これはDartPadにも適用されました。
また、Flutter toolを使うことで削除のためのマイグレーションを手助けしてくれるそうです。
iOSのサポートバージョンの切り上げ
iOS9.3.6及び32ビット端末ではコンパイルは通るが正しく動くかわからない状態になりそうです。
そして、最終的に2022年中にはiOS9と10のサポートが終了するそうです。
Breaking Changes
最後に
実際に、アップデートした際にどのような変更が起こるかは下記記事で公開していますのでよろしければ
ご覧ください。
Twitterフォローお願いします
「次回以降も記事を読んでみたい!」「この辺分からなかったから質問したい!」
そんな時は、是非Twitter (@daiki1003)やInstagram (@ashdik_flutter)のフォローお願いします♪
Twitterコミュニティ参加お願いします
Twitterコミュニティ「Flutter lovers」を開設しました!参加お待ちしております😁
☕️ Buy me a coffee
また、記事がとても役に立ったと思う人はコーヒーを奢っていただけると非常に嬉しいです!
コメント