DCIアーキテクチャはMVCの考案者であるTrygve Reenskaugによって考案され、James O. Coplien氏が中心となって開発されています。
DCIはそれぞれ
D: Data
C: Context
I: Interaction
です。
DCIはドメインモデルをユースケースとオブジェクトの振る舞いからデータとして分離し、適切な結合と凝集を提供します。DCIはプレゼンテーションには関係せず、MVCなどのプレゼンテーションからデータと処理を分離するアーキテクチャパターンを補完する役割があります。
Flutter/DartにおけるDCIアーキテクチャはWidgetが通信するモデルレイヤーの構築に役に立ちます。実際の実装ではmixinを多用します。
このセッションではDCIアーキテクチャの紹介とFlutter/Dartでの実装方法を解説します。