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

Flutter アプリの将来のインフラ移行に備える 疎結合なソフトウェア・アーキテクチャ / ...

Flutter アプリの将来のインフラ移行に備える 疎結合なソフトウェア・アーキテクチャ / Flutter code Architecture for Infrastructure Migration

近年、モバイルアプリのクロスプラットフォーム対応を進める目的で Flutter が導入されることが増えてきています。くわえて、とりわけ少数のチームで開発を進める場合、開発効率を高めるために mBaaS が導入されることも少なくありません。そこで課題となるのが、中長期的な運用に足る拡張性やスケーラビリティと短期的な開発効率のバランスをどのように確保していくか、ということです。

本セッションでは、短期的な開発効率を高めつつも将来のインフラ移行に備えることが可能な疎結合なアーキテクチャを Flutter プロジェクトの初期から採用することを提案し、その具体的な設計やコードのサンプルを解説します。

- Flutter とオニオン・アーキテクチャ
- インフラ層を隔離することの意義とその方法
- 疎結合を実現する状態管理モデル(Riverpod, StateNotifier)

Takahiro Ikeuchi

November 18, 2022
Tweet

More Decks by Takahiro Ikeuchi

Other Decks in Technology

Transcript

  1. Agenda 自己紹介 - 2分 インフラ移行にどう備えるか - 5分 疎結合なソフトウェア・アーキテクチャを目指して - 20分

    アンチパターン2選 - 5分 まとめ - 3分 1. 2. 3. 4. 5. 💡 資料およびサンプルコードは公開いたします 2
  2. ドメイン ユースケース プレゼンテーション(UI ) インフラ テスト Entity Value Object Repository

    Service ドメイン層 ドメインモデルと リポジトリインターフェースの定義
  3. Dart と DTO (Data Transfer Object) インフラ層のデータ構造とドメインオブジェクトをマッピング JSON とオブジェクトの相互変換が必要な場合 freezed

    パッケ ージ周辺のツールが便利 toJson, fromJson が生える immutable なデータクラスとしての振る舞い https://pub.dev/packages/freezed
  4. View View Model Flutter Widget Riverpod プレゼンテーション層の View と View

    Model ※ 状態管理は Riverpod である必要はないです。他の選択肢でもOK