I wanted to have a system in place that works like you would describe stuff happening in the real world as well. Cause and effect came to my mind.
causality contains the pure Dart package and flutter_causality contains
the Flutter related extensions.
- ✅ Emit causes
- ✅ Effects observe causes
- ✅ Effects can result in new causes to be emitted
- ✅ Put a causality universe widget in the wigdet tree
- ✅ Put an effect widget in the widget tree to observe causes
See some explanatory examples in the diagram below:
Effect1andEffect2both observeCause1Effect1emits 3 causes as its resultEffect2does not emit any resulting causesEffect2observesCause4, which is a cause emitted fromEffect1
stateDiagram-v2
direction LR
classDef cause fill:lightgreen,color:black
classDef effect fill:lightblue,color:black
Cause1 --> Effect1
Effect1 --> Cause2
Effect1 --> Cause3
Effect1 --> Cause4
Cause1 --> Effect2
Cause4 --> Effect2
Effect2 --> [*]
class Cause1 cause
class Cause2 cause
class Cause3 cause
class Cause4 cause
class Effect1 effect
class Effect2 effect
- Medium article by Goddchen: Bring causality to Dart/Flutter