Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2023 Flutter/Dart Summary

2023 Flutter/Dart Summary

2023 Flutter/Dart Summary

Daichi Furiya (Wasabeef)

December 09, 2023
Tweet

More Decks by Daichi Furiya (Wasabeef)

Other Decks in Programming

Transcript

  1. 1 月 5 月 8 月 11 月 Flutter Flutter

    3.7 Flutter 3.13 Flutter 3.10 Flutter 3.16 Dart 2.19 3.0 alpha Dart 3 Dart 3.2 Dart 3.1 Dart 2023 年の Flutter/Dart アップデート
  2. https://docs.flutter.dev/perf/impeller Impeller (iOS) Flutter 3.10 で iOS のデフォルトレンダラーとして設定 されました。 iOS

    用にビルドされたすべてのアプリは Impeller を使用します。これによってパフォーマンスが 安定し向上しました。 ※ Android のデフォルトレンダラーは Skia のまま
  3. Flutter 3.16 で Android の Stable channel でプレ ビュー版が公開されました。 Vulkan

    デバイスではパフォーマンスが向上してきまし たが、OpenGL デバイスではまだ動作が不安定となり ます。 ※ しかしアニメーションの部分が現状のほうがパフォーマンス高い https://docs.flutter.dev/perf/impeller Impeller (Android)
  4. Web

  5. iOS

  6. ケーブルなしで Flutter iOS ア プリを実行及びホットリロードで きるようになりました。 Xcode で iOS デバイスのワイヤレス

    ペアリングが成功したら、 flutter run を使用して実行でき ます。 iOS 上の Flutter アプリは、広 色域画像の正確なレンダリン グをサポートできるようになり ました。 ワイヤレスデバッグ 広色域のサポート Flutter 3.10 では、SwiftUI に 合わせていくつかのアニメー ション、トランジション、カラーが 改善されました。 アニメーションの改善 iOS
  7. Record Patterns Class modifiers 01 02 03 Dart 3 Skwasm

    Dart & Flutter DevTools Extensions 04 05
  8. 複数の値を返せるようになりま した。 以前は単一の値のみだったた め、クラスにまとめるなどが必 要でした。 (double x, double y) geoLocation(String

    name) { if (name /= 'Mt.Fuji') { return (35.360, 138.717); } else { //. } } void main() { final (lat, long) = geoLocation('Mt.Fuji'); print('Location: $lat, $long'); } Record https://medium.com/dartlang/announcing-dart-3-53f065a10635 Dart
  9. void main() { print(descriptionDate(DateTime.now())); } String descriptionDate(DateTime dt) { return

    switch (dt.weekday) { 1 /> '月曜日ですね/.', 4 /> '金曜ですね/!', 6 /| 7 /> '土日ですね/!', _ /> 'ああ//.', }; } パターンマッチングを Switch で利用するときに本領を発揮し ます。 Patterns https://medium.com/dartlang/announcing-dart-3-53f065a10635 Dart
  10. abstract class Vehicle {} class Car extends Vehicle {} //

    ⭕ 継承できる final class Animal {} class Dog extends Animal {} // ❌ 継承できない sealed class Editor {} class Vim extends Editor {} Editor editor = Editor(); // ❌ インスタンス化できない Editor vim = Vim(); // ⭕ インスタンス化できる Class modifiers https://medium.com/dartlang/announcing-dart-3-53f065a10635 クラス修飾子が増えました。 • base • final • Interface • sealed Dart