Dart3.0の概要と実務における活用
自己紹介
名前:ダイゴ
経歴:体育大 20 卒 → ユニクロ(半年)→ フリーランス Flutter エンジニア
最近のお仕事:NPO寄付プラットフォームアプリ, 地方銀行アプリ etc
一言:来年2月くらいまで海外を転々とします、オススメの国とかあれば教えてください
Dart3.0の概要と実務における活用
目次
Flutter 3.10 / Dart 3 系、来ましたね!🎉
みなさんの
Flutter 3.10 / Dart 3系への対応状況知りたい
Dart 3 新機能をゴリゴリ使ってる
プロジェクトはまだ少ない(ハズ)
今回の発表が少しでも参考になれば幸いです!
2. Dart / Flutter の歴史
Dart / Flutter 進化の歴史
Dart / Flutter 進化の歴史
ここの話をします
3. Dart 3 新機能の 概要 & 活用例
Record とは
各フィールドの定義・取得
ポイント①
デフォルトで == / hashCode を override する
ポイント②
immutable(不変)であり、フィールドの値を書き換えることはできない
活用例①
再利用することもない & 情報まとめるだけのクラスをシンプルにする
活用例② 複数 Future をまとめて扱う
活用例③ Provider の family として持たせる
Patterns の説明に入る前に...
Patterns とは
種類も多くかなり複雑です
今回は、ダイゴが完全に理解 () できた Pattern のみ抜粋して解説します
Pattern 構文がやること:Matching
Pattern 構文がやること:Destructuring
Pattern 構文が使える場所
活用例:Record の例で出した関数の呼び出し側
いちいち取り出すの面倒
Class modifiers とは
No modifiers
インスタンス化 | ⭕ |
継承 (extends) | ⭕ |
実装 (implements) | ⭕ |
abstract(Dart 3以前から存在)
インスタンス化 | ❌ |
継承 (extends) | ⭕ |
実装 (implements) | ⭕ |
base
インスタンス化 | ⭕ |
継承 (extends) | ⭕ |
実装 (implements) | ❌ |
interface
インスタンス化 | ⭕ |
継承 (extends) | ❌ |
実装 (implements) | ⭕ |
final
インスタンス化 | ⭕ |
継承 (extends) | ❌ |
実装 (implements) | ❌ |
sealed
インスタンス化 | ❌ |
継承 (extends) | ⭕ |
実装 (implements) | ⭕ |
sealed 実用例
~ Result 型を使ったエラーハンドリング漏れ予防 ~
ハンドリング実装漏れ...
呼び出し側も try / catch 書かないといけないが
関数がエラーを投げるかどうかは実装を見ないと判断つかない
sealed を使った Result 型
Result 型を返すように修正
呼び出し側
呼び出し側
呼び出し側
ここをコメントアウトした場合
コンパイルエラーになる
記述可能な組み合わせ
4. まとめ
まとめ
参考
🙏 宣伝 🙏
ご清聴ありがとうございました